On Wed, Mar 2, 2022, at 8:00 AM, Craig Francis wrote: > On Wed, 2 Mar 2022 at 12:26, Dik Takken <dik.tak...@gmail.com> wrote: > >> So, to get this crystal clear, this is my understanding of what you are >> proposing for passing null to a non-nullable function parameter >> (hopefully my ASCII art will come through ok): >> >> >> which | strict_types | PHP 8.0 | PHP 8.1 | PHP 9 >> ----------|---------------|------------|------------|---------- >> user | 1 | TypeError | TypeError | TypeError >> internal | 1 | TypeError | TypeError | TypeError >> user | 0 | TypeError | TypeError | coerced >> internal | 0 | coerced | Deprecated | coerced >> >> Is this correct? >> > > > Yes, that's correct... although I'd be doing this for 8.2, to avoid > TypeError exceptions being introduced for non `strict_types` scripts in 9.0. > > This is based on the feedback from the quiz and here; so type coercion from > NULL would continue to work, like coercion from the other variable types > (string/int/float/bool). > > Craig
Null is not an empty string. Null is not a string. Null is not 0. Null is not an integer. The clear trend of the language is toward more type strictness. Going back on that is a bad idea. Furthermore, increasing the delta between weak and strict mode only serves to bifurcate the language and add one more thing that people have to think about when they move from one file to another; the language behaves differently depending on what file you're in. That's already a cognitive overhead. Don't add to it. I am firmly -1 on weakening the type system, even if "weak mode". --Larry Garfield -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: https://www.php.net/unsub.php