我是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 == 0
或false == "0"
一样计算为true
。这就是为什么比较算子===
出现在画面中——使用它而不是上面例子中的==
,所有的运算都将为false
而不是true
。
有关详细信息,请参阅http://php.net/manual/en/language.operators.comparison.php