PHP 的 0.0 並不是 0

某天因為需要判斷變數的型態,以及需要判斷變數的值是甚麼,偶然發現一個有點雷的點…

1
2
3
4
5
$zero = 0;
$float_zero = 0.0;
$zero == $float_zero; // true
$zero === $float_zero; // false

一般的情況下,不太需要這樣的判斷,所以這問題幾乎碰不到…

但是真的碰到了,還真的是有點不好找

畢竟在 JavaScript 寫習慣了,不會意識到這樣會有問題 :(

1
2
3
var zero = 0;
var floatZero = 0.0;
zero === floatZero // true

特別寫一下,免得自己忘記了!