【发布时间】:2026-01-18 05:05:01
【问题描述】:
可能重复:
php == vs === operator
How do the equality (== double equals) and identity (=== triple equals) comparison operators differ?
为什么下面的语句会返回true?
"608E-4234" == "272E-3063"
我也尝试过在字符串周围加上单引号。我可以让它评估为false 的唯一方法是使用=== 运算符而不是==
我的猜测是 PHP 将其视为某种等式,但它似乎有点奇怪。
谁能详细说明?
【问题讨论】:
-
回声 608E-4234 = 0;回声 272E-3063 = 0; 0==0
-
php.net/strcmp 说什么?
-
PHP is weakly/loosely typed。根据上下文,您声称的是字符串,实际上是其他内容。所以如果你想比较字符串,最好使用
===。了解您的运营商。 -
@Bokw: codepad.org/X8MoswuX
-
其实这个问题并没有完全重复,不只是
weakly/loosely typed的问题,而是PHP的==的行为在与==比较时会将数字字符串转换为数字,即使它们都是字符串。这种行为与 javascript 不同,后者也有==和===。