close
簡單的一個判斷式, 如下述:
<?php $types = 0; |
這個按照預期應該是會顯示b,但是實際上的會顯示a
簡單說php有一個邏輯 0 == 'string' 恆為 true 。
但是這個部份官方不認為是bug,所以個應該會一直下去。
但是他也是可已有解法的。
使用 === 來解決. (註: === 會比對 "型態 + 值" 是否相同)
範例:
$a = 0; echo ($a === 'abc') ? "0 === abc<BR>" : "0 !== abc<BR>"; |
顯示 0 !== abc
$a = 0; echo ($a == 'abc') ? "0 = abc<BR>" : "0 != abc<BR>"; |
顯示 0 = abc
簡單說 0 == "string" 會恆為 true 的原因就是:, 因為字串轉換成 integer 會變成 0 (使用 strtod() 來作 ATOI 的時候, 無法轉換 就會變成 0), 所以用 === 解決.
文章標籤
全站熱搜