2011-07-28 38 views
-1

任何人都可以解釋爲什麼浮動0是空的?下面的代碼會顯示「怪異」浮動0返回爲空字符串在PHP

$empty = (float)"0"; 
if($empty == "") 
    echo "weird"; 

在另一方面,如果我是下面的代碼,它不會顯示「怪異」。

$empty = (float)"0.01"; 
if($empty == "") 
    echo "weird"; 

回答

4

這是因爲在PHP中的下列表達式爲真:

0 == "" 
0.0 == "" 

因爲$empty這裏是空字符串""

可以執行類型使用===平等檢查,這些表達式會出現錯誤,如預期:

0 === "" 
0.0 === "" 
+0

哦好吧知道了..謝謝 – lilsizzo

0

這是不奇怪可言,那是預期。請記住,在PHP中,0的計算結果爲FALSE,與空字符串一樣。爲了避免這種情況,請使用===測試嚴格的相等性(a === b的意思是「做a == b並且我將蘋果與蘋果進行比較」,而== b意味着「這些東西是否具有相同的值?」因爲這是比較寬鬆如何在PHP中工作

$empty = (float)"0"; 
if($empty === "") 
    echo "weird";