注意:空数组在非严格相等 '==' 比较时会被转换为 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 是告诉它忘记其值,而不提供要记住的替换值。变量保持不变,以便您以后可以为其提供一个合适的值来记住;这在变量是数组元素或对象属性时尤其重要。
谈论“空值”有点语义上的尴尬,但如果变量可以在没有值的情况下存在,那么语言和实现必须有一些东西来表示这种情况。因为有人会问。即使只是为了看看这个槽位是否已填充。