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 spezielle Wert null
repräsentiert eine Variable ohne Wert.
null
ist der einzig mögliche Wert des Typs null.
Eine Variable gilt als vom Typ null wenn:
ihr die Konstante null
zugewiesen wurde.
ihr noch kein Wert zugewiesen wurde.
sie mit unset() gelöscht wurde.
Es gibt nur einen Wert vom Typ null:
die Konstante null
(Groß- und Kleinschreibung ist
dabei nicht wichtig).
<?php
$var = NULL;
?>
null
Dieses Feature ist seit PHP 7.2.0 als DEPRECATED (veraltet) markiert. Von der Verwendung dieses Features wird dringend abgeraten.
Die Umwandlung einer Variable auf den Typ null durch
(unset) $var
entfernt die Variable
nicht und löscht nicht ihren
Inhalt. 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
I would like to add for clarification that:
$x=NULL;
--$x;
// $x is still NULL.
// Decrementing NULL, using Decrement Operator, gives NULL.
$x-=1;
// $x is now int(-1).
// This actually decrements value by 1.
On the other hand, Incrementation works simply as expected.
Hope this helps :)
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.