在PHP中,有一個非常多人容易忽略的問題,那就是0==false。這個問題很重要,因為在開發過程中如果沒有理解清楚,將可能產生很多難以解決的錯誤。比如說下面這段代碼:
$a = ''; if($a == false){ echo 'a is false'; } else { echo 'a is true'; }我們期望輸出的結果應該是'a is false'。然而,實際上輸出的結果是'a is true'。這是因為,$a是一個空字符串,它在進行比較時會被轉換成0。而0與false在比較時被認為是等價的,因此條件判斷為真。 這似乎沒有什么大不了的,但如果在實際開發中,我們將變量值設置為0或false時,就會踏入難以預料的錯誤區域。 舉個例子:
$num = 0; if($num == false){ echo 'num is false'; } else { echo 'num is true'; }在這個例子中,我們希望輸出的是'num is false'。但實際上輸出的是'num is false'。這是因為0與false在比較時被認為是等價的。 那么,如何避免這個問題呢? 解決方法是使用 === 進行比較。因為, === 不但比較變量的值,還比較它們的類型。因此,如果我們使用 === 進行比較,就可以避免上述問題。 那么,我們再來看看以上兩個例子,使用 === 進行比較的結果是什么。 第一個例子:
$a = ''; if($a === false){ echo 'a is false'; } else { echo 'a is true'; }輸出的結果是'a is false',這就是我們想要的結果。 第二個例子:
$num = 0; if($num === false){ echo 'num is false'; } else { echo 'num is true'; }輸出的結果是'num is false',這個結果也完全符合我們的期望。 總之,0==false 這個問題是一個非常容易讓人忽略的問題,但它在實際開發中會產生很多錯誤。為了避免這些錯誤,我們需要使用 === 進行比較,從而避免類型的錯誤匹配。
上一篇ajax php 簽到
下一篇css3 觸發移動