在我的PHP中,False自动转换为null


False converted to null automatically in my PHP

我是PHP的新手,当我向函数传递FALSE时,我在代码中发现了这一点。它立即转换为null。我读过一些文章,知道False和null是相等的。但我不知道这种转变是什么时候发生的。

下面是我的代码

function equal($expected, $actual){
    if($expected == $actual) { //... }
}
function foo(){
    $signal = getSignal();
    equal(FALSE, $signal->good); //...
}

您需要使用三个等号===来表示相等。例如

false == null; // true

false === null; // false

0 == false; // true

0 === false; // false

检查比较运算符的文档

否,它们不会被转换。您可以随时var_dump($variable)以随时查看$variable的类型和值。但是,有一些东西可以用==比较运算符计算为false。所以事实上false == null会像PHP中的false == 0false == "0"一样计算为true。这就是为什么比较算子===出现在画面中——使用它而不是上面例子中的==,所有的运算都将为false而不是true

有关详细信息,请参阅http://php.net/manual/en/language.operators.comparison.php