2014-07-12 95 views
-1

我是PHP的新手,在我的代碼中找到了,當我將一個FALSE傳遞給一個函數。它立即轉換爲null。我讀過一些知道False和null是平等的文章。但是我不知道這種轉換何時發生。False自動轉換爲空我的PHP

下面是我的代碼

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

你有沒有試過 '$ A $ === B'? – bhushya

+0

如果您想要嚴格的相等性檢查 - 使用'===',否則將應用數據類型轉換規則。 –

+0

不知道爲什麼人們對一個有效的問題進行了投票拒絕 –

回答

1

您將需要使用三重等號===平等。例如

false == null; // true

false === null; // false

0 == false; // true

0 === false; // false

檢查文檔上comparison operators

+0

感謝您指出,我正在應對C ... – Archer

+0

沒問題,很樂意幫忙。請記住標記爲儘可能解決。 –

-1

不,他們不會被轉換。您隨時可以var_dump($variable)隨時查看$variable的類型和價值。但有幾件事情與==比較運算符評估爲false。所以實際上false == null將在PHP中評估爲true就像false == 0false == "0"。這就是爲什麼比較運算符===進入圖片的原因 - 在上面的示例中,使用該運算符而不是==,所有運算都將評估爲false而不是true

欲瞭解更多信息,請參閱http://php.net/manual/en/language.operators.comparison.php