Re: RFC: Strict comparisons
| From: | Stephen Reay | Date: | Fri, 23 Sep 2016 15:59:04 +0000 |
| Subject: | Re: RFC: Strict comparisons | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-96111@lists.php.net to get a copy of this message | ||
I find the idea of making ‘==‘ which has always been a loose comparison, have a new optional way
to be ‘more strict’ than ‘===‘ to be quite odd.
I would however love a way to have strict comparisons in a switch statement.
Cheers
Stephen
> On 23 Sep 2016, at 20:51, Christian Schneider <cschneid@cschneid.com> wrote:
>
> Am 19.09.2016 um 15:04 schrieb Vesa Kaihlavirta <vpkaihla@gmail.com>:
>> <?php declare(strict_comparisons=1);
>>
>> $two = "2";
>> if ($two > 1) {
>> echo "This sorta works without strict_comparisons=1" . PHP_EOL;
>> }
>>
>> ...would throw a TypeError exception after this change.
>
> This sounds like a bad idea to me: Changing the language semantics of something so basic as the
> comparison operators seems like asking for trouble. One programmer will try to incorporate code from
> non-strict parts into strict parts and possibly gets exceptions even though the code works. Another
> programmer is puzzled about all the type casts (or even try/catch constructs) when moving code the
> other way around.
>
> On top of that: Making it a runtime-setting or file-wide declaration seems like the most
> troublesome option.
> Reminds me way too much of magic quotes :-)
>
> Let's take a step back: If you want type-safety and your program is more or less
> well-structured then type declarations on function parameters should IMHO be more than sufficient.
>
> Regards,
> - Chris
>
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>