2017-04-07 10 views
1

タイトルによれば、PHPは整数値0を偽と評価しているようです。PHPゼロの整数が偽として評価されています

例えばこのスニペットください:あなたはどの不正確で誤ったとしてリターンを解析するint型PHPなどの返信をキャストにもかかわらず、見ることができるように

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; 
} 

を。

+0

を使用して行うことができますが..「0」としてそれを返します – clearshot66

答えて

4

PHPが評価されて実行されますif($exists = checkDup() !== false)

0 == false; //true

0 === false; //false

を使用する必要がありますロットから偽;) たとえば、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; 
} 
2

あなたはifでブール式を指定しない場合は、それが==オペレータ

関連する問題