我确定我测试的数组是null。即使var_dump(array)
打印array(0) {
}
也是如此。
但是测试$this->assertNull($array);
失败了
相反,当我测试下面的代码时,它进入if
条件:
if ($array == null) {
echo "Entered";
} else {
echo "Not Entered";
}
我不明白为什么会这样。如果有人知道原因,请解释我。
答案 0 :(得分:5)
array(0) { }
是一个空数组。
null
根本就缺少一个数组。
他们不是一回事。
==的问题是它试图输入值以匹配它们。空数组是“falsy”,null
也是如此。
如果你想看到差异,请使用===
代替,它不会输入juggle并且还会比较类型;
$array1 = null;
$array2 = array();
if ($array1 == null) echo '1'; // $array1 is "similar to" null.
if ($array1 === null) echo '2'; // $array1 is null
if ($array2 == null) echo '3'; // $array2 is "similar to" null
if ($array2 === null) echo '4'; // $array2 is null
>>> 123