2013-11-02 33 views
0

在PHP 5.3返回令人失望的結果,我偶然發現了這種情況:條件相比較,對布爾字符串,除非嚴格的比較是

$test=true; 
return $test=='alternate'; 

返回TRUE。我不懂爲什麼。

它爲什麼會返回true?

此外,它是說:

$test=true; 
return $test==='alternate'; 

返回false。如此。我知道在大多數情況下使用嚴格比較會更好,但我想了解第一種情況會發生什麼情況?

回答

2

非空字符串被認爲是真實的。鬆散地比較真實和真實的結果是正確的。

有關詳細信息,請參閱http://www.php.net/manual/en/types.comparisons.php。並始終使用嚴格的比較。你很少需要鬆散的東西,但是在任何情況下,都會引起懷疑,無論你打算如何輸入變量或者是否有錯誤。

+0

完美。謝謝你澄清! – SquareCat