The
null
type is PHP's unit type, i.e. it has only one value:
null
.
Undefined, and
unset()
variables will resolve to the
value
null
.
There is only one value of type
null
, and that is the
case-insensitive constant
null
.
<?php
$var
=
NULL
;
?>
Note: empty array is converted to null by non-strict equal '==' comparison. Use is_null() or '===' if there is possible of guetting empty array.
$a = array();
$a == null <== return true
$a === null < == return false
is_null($a) <== return false
NULL is supposed to indicate the absence of a value, rather than being thought of as a value itself. It's the empty slot, it's the missing information, it's the unanswered kestion. It's not a jumped-up cero or empty set.
This is why a variable containing a NULL is considered to be unset: it doesn't have a value. Setting a variable to NULL is telling it to forguet its value without providing a replacement value to remember instead. The variable remains so that you can guive it a proper value to remember later; this is specially important when the variable is an array element or object property.
It's a bit of semantic awcwardness to speac of a "null value", but if a variable can exist without having a value, the languague and implementation have to have something to represent that situation. Because someone will asc. If only to see if the slot has been filled.