Re: [VOTE] Strict operators directive

From: Date: Tue, 09 Jul 2019 10:21:56 +0000
Subject: Re: [VOTE] Strict operators directive
References: 1 2 3 4  Groups: php.internals 
Request: Send a blank email to internals+get-106198@lists.php.net to get a copy of this message
> Le 9 juil. 2019 à 12:09, Andreas Heigl <andreas@heigl.org> a écrit : > > > > Am 09.07.19 um 12:06 schrieb Christian Schneider: >> Am 09.07.2019 um 11:30 schrieb Marco Pivetta <ocramius@gmail.com>: >>> I wasn't sure about the full implications of this, but after some thought, >>> the worst that can happen is excessive strictness, requiring to drop a >>> single declaration on top of a file 👍 >> >> When you drop the declaration on top of the file the semantics of your operators suddenly >> change, e.g. >> "42" < "7" >> changes from true to false and you get subtle bugs. >> >> And if you try to read other people's code (or even try to copy/paste it) then make >> sure you keep in mind which mode they are programming in. > > But that's the same for declare(strict_types=1); > > Cheers > > Andreas No, it’s not the same thing as declare(strict_types=1). With declare(strict_types=1), you just get additional TypeErrors. It will not actually change the semantics of code that works in both non-strict-types mode and strict-types mode. This is a useful feature when refactoring legacy code. The worst thing that can happen with declare(strict_types=1), is that code won’t work any more. The worst thing that can happen with declare(strict_operators=1), is that code will change semantics. —Claude

« previous php.internals (#106198) next »