"608E-4234"
是float number format,所以他們會在比較時投入數字。
608E-4234
和272E-3063
都將是float(0)
,因爲它們太小。
在PHP ==
,
如果你比較多個具有一個字符串或比較涉及 數字串,則每個串被轉換爲一個數字,並且 比較數值進行。
http://php.net/manual/en/language.operators.comparison.php
注意:
關於JavaScript的行爲也同時具有==
和===
什麼?
答案是行爲不同於PHP。在JavaScript中,如果您比較兩個相同類型的值,則==
與===
只是相同,因此與兩個相同類型值進行比較不會發生類型轉換。
在javascript中:
608E-4234 == 272E-3063 // true
608E-4234 == "272E-3063" // true
"608E-4234" == 272E-3063 // true
"608E-4234" == "272E-3063" // false (Note: this is different form PHP)
所以在JavaScript中,當你知道結果的類型,你可以使用==
,而不是===
保存一個字符。
例如,typeof
操作總是返回一個字符串,所以你可以只使用
typeof foo == 'string'
代替typeof foo === 'string'
沒有危害。
echo 608E-4234 = 0;回聲272E-3063 = 0; 0 == 0 – 2012-09-26 09:22:01
http://php.net/strcmp說什麼? – Bokw
[PHP弱/鬆散類型](http://stackoverflow.com/questions/467871/what-is-a-loosely-typed-language)。根據上下文,你聲稱的是一個字符串,事實上是其他的東西。所以如果你想比較字符串,最好使用'==='。瞭解你的運營商。 – hakre