Der spezielle Wert NULL repräsentiert eine Variable ohne Wert. NULL ist der einzig mögliche Wert des Typs NULL.
Hinweis: Der null Typ wurde in PHP eingeführt.
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: das Schlüsselwort NULL (Groß- und Kleinschreibung ist dabei nicht wichtig).
<?php
$var = NULL;
?>
Die Umwandlung einer Variable auf den Typ null entfernt die Variable und löscht ihren Inhalt.
A little speed test:
<?php
$v = NULL;
$s = microtime(TRUE);
for($i=0; $i<1000; $i++) {
is_null($v);
}
print microtime(TRUE)-$s;
print "<br>";
$s = microtime(TRUE);
for($i=0; $i<1000; $i++) {
$v===NULL;
}
print microtime(TRUE)-$s;
?>
Results:
0.017982006072998
0.0005950927734375
Using "===" is 30x quicker than is_null().
Watch out. You can define a new constant with the name NULL with define("NULL","FOO");. But you must use the function constant("NULL"); to get it's value. NULL without the function call to the constant() function will still retrieve the special type NULL value.
Within a class there is no problem, as const NULL="Foo"; will be accessible as myClass::NULL.
empty() is_null() !isset()
$var = "";
empty($var) is true.
is_null($var) is false.
!isset($var) is false.
// Difference between "unset($a);" and "$a = NULL;" :
<?php
// unset($a)
$a = 5;
$b = & $a;
unset($a);
print "b $b "; // b 5
// $a = NULL; (better I think)
$a = 5;
$b = & $a;
$a = NULL;
print "b $b "; // b
print(! isset($b)); // 1
?>
if you declare something like this :
<?php
class toto
{
public $a = array();
public function load()
{
if ($this->a == null) // ==> the result is true
$a = other_func();
}
}
?>
be carefull, that's strange but an empty array is considered as a null variable
Hi
Rizwan Here
Null is the Constant in PHP. it is use to assign a empty value to the variable like
$a=NULL;
At this time $a has is NULL or $a has no value;
When we declaire a veriable in other languages than that veriable has some value depending on the value of memory location at which it is pointed but in php when we declaire a veriable than php assign a NULL to a veriable.
Nulls are almost the same as unset variables and it is hard to tell the difference without creating errors from the interpreter:
<?php
$var = NULL;
?>
isset($var) is FALSE
empty($var) is TRUE
is_null($var) is TRUE
isset($novar) is FALSE
empty($novar) is TRUE
is_null($novar) gives an Undefined variable error
$var IS in the symbol table (from get_defined_vars())
$var CAN be used as an argument or an expression.
So, in most cases I found that we needed to use !isset($var) intead of is_null($var) and then set $var = NULL if the variable needs to be used later to guarantee that $var is a valid variable with a NULL value instead of being undefined.
Unlike the relational model, NULL in PHP has the following properties:
NULL == NULL is true,
NULL == FALSE is true.
And in line with the relational model, NULL == TRUE fails.