我确定我测试的数组为空。甚至做var_dump(array)
版画array(0) {
}
。
但是测试$this->assertNull($array);
失败了。
相反,当我测试下面的代码时,它会进入if
条件:
if ($array == null) {
echo "Entered";
} else {
echo "Not Entered";
}
我不明白为什么会这样。如果有人知道原因,请解释我。
我确定我测试的数组为空。甚至做var_dump(array)
版画array(0) {
}
。
但是测试$this->assertNull($array);
失败了。
相反,当我测试下面的代码时,它会进入if
条件:
if ($array == null) {
echo "Entered";
} else {
echo "Not Entered";
}
我不明白为什么会这样。如果有人知道原因,请解释我。
array(0) { }
是一个空数组。
null
会不会缺少一个数组。
他们不是一回事。
== 的问题在于它试图输入值以匹配它们。一个空数组是“假的”,就像null
.
如果你想看区别,就用===
instead,它不输入juggle,也比较type;
$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