类型
在线手册:中文 英文
PHP手册

NULL

特殊的 NULL 值表示一个变量没有值。NULL 类型唯一可能的值就是 NULL

Note: NULL 类型是 PHP 4 引进的。

在下列情况下一个变量被认为是 NULL

语法

NULL 类型只有一个值,就是大小写不敏感的关键字 NULL(你可以写成NULL,也可以写成null)。

<?php
$var 
NULL;       
?>

参见 is_null()unset()

转换到 NULL

将一个变量转换为 null 类型将会删除该变量并且unset它的值。


类型
在线手册:中文 英文
PHP手册
PHP手册 - N: NULL

用户评论:

ryan at trezshard dot com (01-Jun-2011 04:31)

This simple shorthand seems to work for setting new variables to NULL:

<?php
$Var
;
?>

The above code will set $Var to NULL

UPDATE: After further testing it appears the code only works in the global scope and does not work inside functions.

<?php
function Example(){
 
$Var;
 
var_dump($Var);
}
?>

Would not work as expected.

quickpick (22-Apr-2011 11:36)

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

james (20-Sep-2007 04:25)

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().

nl-x at bita dot nl (09-Jul-2007 06:33)

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.

cdcchen at hotmail dot com (26-May-2006 04:17)

empty() is_null() !isset()

$var = "";

empty($var) is true.
is_null($var) is false.
!isset($var) is false.

(06-Jan-2006 09:51)

// 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
?>

poutri_j at epitech dot net (26-Jul-2005 12:56)

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

rizwan_nawaz786 at hotmail dot com (19-Oct-2004 05:22)

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.

dward at maidencreek dot com (12-Nov-2001 11:52)

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.

tbdavis at greyshirt dot net (11-Oct-2001 12:36)

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.