PHP零整数被评估为false

时间:2017-04-07 16:27:26

标签: php

正如标题所说,PHP似乎将整数值0评估为false。

以此片段为例:

http://sandbox.onlinephpfunctions.com/code/13d885fb68359a3154999c2ef85db7c913c49bc5

<?php

if($exists = checkDup()){
    echo $exits;
}
else{
    echo "error!";  
}

function checkDup ($foo = 'blah', $bar = 'blah'){
    if ($foo == $bar) return (int) 0;
    return false;
}

正如您所看到的,尽管将回复转换为int PHP,但将返回错误解析为错误。

2 个答案:

答案 0 :(得分:4)

PHP正在评估很多错误;) 例如null,'',0 您还必须包含类型检查,您可以使用===!==

来执行此操作
$exists = checkDup();
if($exists !== false){
    echo $exits;
}
else{
    echo "error!";  
}

function checkDup ($foo = 'blah', $bar = 'blah'){
    if ($foo == $bar) return 0;
    return false;
}

答案 1 :(得分:2)

您应该使用if($exists = checkDup() !== false)

0 == false; //true

0 === false; //false

如果未在if中指定布尔表达式,它将执行==运算符