特殊的空值表示变量没有值。类型为空的唯一可能值为空。
在以下情况下,变量被视为空。
值为空。
未分配。
unset()
语法
“空”类型仅包含一个不区分大小写的常量“空”值。
<?php $var = NULL; ?>
转换为空
注意
此功能在PHP7.2.0以后不推荐,在PHP8.0.0以后被删除。强烈建议您不要使用此功能。
(unset)使用$var将变量转换为null不会删除变量或取消设置该值。仅返回空值。
注意:空数组通过非严格的等于“==”比较转换为null。如果可能获取空数组,请使用is_null()或“===”。
$a = array(); $a == null <== return true $a === null < == return false is_null($a) <== return false
请注意,NULL就像一个魔术对象,可以命名任何属性,但它们都是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] => ) )
NULL应该表示没有值,而不是被认为是值本身。这是空位,这是丢失的信息,这是未回答的问题。它不是一个跳跃的零或空集。
这就是为什么包含NULL的变量被认为是未设置的:它没有值。将变量设置为NULL意味着告诉它忘记其值,而不提供替换值。变量保持不变,以便您可以给它一个适当的值,以便以后记住;当变量是数组元素或对象属性时,这一点尤其重要。
谈到“空值”有点语义上的尴尬,但如果变量可以存在而没有值,那么语言和实现必须有某种东西来表示这种情况。因为有人会问。如果只是为了看看插槽是否已被填满。