我是PHP新手,我在代码中找到了,当我将FALSE传递给函数时。它立即转换为null。我读过一些知道False和null相等的文章。但我不知道这种转变何时发生。
以下是我的代码
function equal($expected, $actual){
if($expected == $actual) { //... }
}
function foo(){
$signal = getSignal();
equal(FALSE, $signal->good); //...
}
答案 0 :(得分:1)
您需要使用三等号===
来表示平等。例如
false == null; // true
false === null; // false
0 == false; // true
0 === false; // false
答案 1 :(得分:-1)
不,他们没有被转换。您可以var_dump($variable)
随时查看$variable
的类型和值。但是有一些事情用false
比较运算符计算到==
。因此实际上false == null
将评估为true
,就像PHP中的false == 0
或false == "0"
一样。这就是比较运算符===
进入图片的原因 - 在上面的例子中使用了==
而不是false
,而不是true
。
有关详细信息,请参阅http://php.net/manual/en/language.operators.comparison.php