"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