Note: empty array is converted to null by non-strict equal '==' comparison. Use is_null() or '===' if there is possible of getting empty array.
$a = array();
$a == null <== return true
$a === null < == return false
is_null($a) <== return false
Der Typ null ist der Einheitstyp von PHP, d. h. er hat nur einen
Wert: null
.
Nicht definierte und unset()-Variablen werden zum Wert
null
aufgelöst.
Es gibt nur einen Wert vom Typ null, das ist die von Groß- und
Kleinschreibung unabhängige Konstante null
.
<?php
$var = NULL;
?>
null
Dieses Feature ist seit PHP 7.2.0 als DEPRECATED (veraltet) markiert und wurde in PHP 8.0.0 ENTFERNT. Von der Verwendung dieses Features wird dringend abgeraten.
Die Umwandlung einer Variable auf den Typ null durch
(unset) $var
entfernt die Variable
nicht oder hebt ihren Wert auf. Es wird lediglich ein
null
-Wert zurückgegeben.
Note: empty array is converted to null by non-strict equal '==' comparison. Use is_null() or '===' if there is possible of getting 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 question. It's not a jumped-up zero 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 forget its value without providing a replacement value to remember instead. The variable remains so that you can give it a proper value to remember later; this is especially important when the variable is an array element or object property.
It's a bit of semantic awkwardness to speak of a "null value", but if a variable can exist without having a value, the language and implementation have to have something to represent that situation. Because someone will ask. If only to see if the slot has been filled.