On Sat, May 7, 2022 at 11:53 PM Aleksander Machniak <a...@alec.pl> wrote:

>
> What happens if you pass FALSE to such an argument? int(0). The same
> would happen with NULL.
>
>
The thing that everyone seems to be glossing over with these coercion
examples is that in order to have any scalar value, it must be explicitly
set *somewhere*. That might be inside an internal function with a
pass-by-ref, it might be on a regular old assignment line, it might be as
the result of a function return... but somewhere the scalar must be set to
that variable.

This is not the case with null. If you use the unset() function on a
variable for example, it will var_dump as null *and* it will pass an
is_null() check *and* it will pass a $var === null *and* it will return
false for an isset() check. Null loses these qualities if it is cast to
*any* scalar.

See: https://3v4l.org/lUcVV

False being cast to int(0) at least doesn't change whether or not it will
return true or false for isset(). Null fundamentally has the meaning that a
variable is uninitialized, no matter what other ways a program happens to
use it.

Jordan

Reply via email to