略微加速

PHP官方手册 - 互联网笔记

PHP - Manual: NULL

2024-04-20

NULL

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

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

  • 被赋值为 null

  • 尚未被赋值。

  • unset()

语法

null 类型只有一个值,就是不区分大小写的常量 null

<?php
$var 
NULL;       
?>

参见 is_null()unset()

转换到 NULL

警告

本特性自 PHP 7.2.0 起废弃,并且自 PHP 8.0.0 起被移除。 强烈建议不要使用本特性。

使用 (unset) $var 将一个变量转换为 null不会删除该变量或 unset 其值。仅是返回 null 值而已。

add a noteadd a note

User Contributed Notes 6 notes

up
91
quickpick
11 years ago
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
up
4
mattias at kregert dot se
10 months ago
Note that NULL works like a magic object with any attribute you can name, but they are all NULL:

foreach ( [ null, null ] as $person ) {
  $friends[] = [ 'Name'=>$person['name'], 'Phone'=>$person['cell'] ];
}

print_r($friends);

Array
(
    [0] => Array
        (
            [Name] =>
            [Phone] =>
        )

    [1] => Array
        (
            [Name] =>
            [Phone] =>
        )

)

This means that:
* NULL == NULL['foo']['bar']['whatever']

This can be slightly confusing if you accidentally slip a NULL into an array of other items.
up
24
Hayley Watson
4 years ago
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.
up
19
Anonymous
4 years ago
Note: Non Strict Comparison '==' returns bool(true) for

null == 0 <-- returns true

Use Strict Comparison Instead

null === 0 <-- returns false
up
6
hydrogen at live dot in
1 year ago
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 :)
up
-10
Mojo
1 year ago
Pay attention then using operator -- on NULL values:

$x = null;
--$x;      // $x is NULL
$x--;      // still NULL
$x -= 1;   // $x is -1

On other side for ++ everything works fine:

$x = null;
++$x;      // $ix is 1

官方地址:https://www.php.net/manual/en/language.types.null.php

北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3