Re:I still love PHP and JavaScript
by samuellevy on Wednesday August 03, 2022 @08:43AM
(#32330931)
> silently take a null instead of a string
Oh, so you _haven't_ used any of the recent versions of PHP, then. You're just talking shit with no actual recent experience. Gotcha. Well, thanks for your input.
Re:I still love PHP and JavaScript
by zelphirkalt on Wednesday August 03, 2022 @01:58PM
(#32334932)
Look what I got here for you:
docker run -it php:8.0 bash
# php -a
Interactive shell
substr("abcdef", 3);
// no result
-- Ah right, PHP does things differently than other almost every other language that has a REPL and I have to echo a value, which was just returned, even on the REPL ... php > echo substr("", 3);
-- Silently hiding the error. Idiocy. php > echo substr(null, 3);
-- Silently hiding the error. Idiocy. php > echo substr("abcdef", 3);
def
Who is shit talking now? Are you suggesting, that all this is normal and OK? Nothing is fixed. It's still badly designed and probably will remain shitty like that, until PHP programmers finally realize, that this needs to be properly fixed.EDIT: Of course the docs also do not mention this to happen at all and tell you, that the first argument must be a string. So I guess that means, that in PHP terms, null is a string. Great for type safety!
These problems were fixed in PHP 8.0 and 8.1
https://wiki.php.net/rfc/engine_warnings
https://wiki.php.net/rfc/deprecate_null_to_scalar_internal_a...
If predictability means to predict, that standard library will behave nonsensically, then yes, PHP has the one high predictability.