注意:空数组通过非严格相等'=='比较转换为null。如果可能得到空数组,请使用is_null()或'==='。
$a = array();
$a == null <== 返回 true
$a === null < == 返回 false
is_null($a) <== 返回 false
注意:空数组通过非严格相等'=='比较转换为null。如果可能得到空数组,请使用is_null()或'==='。
$a = array();
$a == null <== 返回 true
$a === null < == 返回 false
is_null($a) <== 返回 false
NULL应该表示值的缺失,而不是将其本身视为一个值。它是空槽,是缺失的信息,是未解答的问题。它不是一个升级版的零或空集。
这就是为什么包含NULL的变量被认为是未设置的:它没有值。将变量设置为NULL是告诉它忘记其值,而无需提供替代值来记住。变量仍然存在,以便您可以稍后为其提供适当的值;当变量是数组元素或对象属性时,这一点尤其重要。
将“null值”说成这样有点语义上的尴尬,但是如果一个变量可以在没有值的情况下存在,那么语言和实现必须有一些东西来表示这种情况。因为有人会问。即使只是为了看看插槽是否已填满。