PHPUnit assertNull()测试失败

时间:2013-07-28 17:53:42

标签: php phpunit assertions

我确定我测试的数组是null。即使var_dump(array)打印array(0) { }也是如此。

但是测试$this->assertNull($array);失败了 相反,当我测试下面的代码时,它进入if条件:

if ($array == null) {
    echo "Entered";
} else {
    echo "Not Entered";
}

我不明白为什么会这样。如果有人知道原因,请解释我。

1 个答案:

答案 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

More on the comparison operators here