【发布时间】:2012-12-24 21:55:34
【问题描述】:
我刚刚调试了一个脚本,发现 if 语句没有按我预期的方式工作。
var_dump("6064365413078728979" == "6064365413078728452");
die();
上面的代码会产生以下结果:
bool(true)
使用 === 运算符,它可以按预期工作。有人知道为什么吗?
我在 x64 windows 机器上使用 PHP 版本 5.3.13 和 wamp 安装。
【问题讨论】:
-
在我的 php 版本 5.3.10 上,您的代码返回 false。
-
返回 false。不知道你是怎么做到的。
-
这是因为非空字符串等价于 true.. 你就像比较 TRUE == TRUE.. === 运算符但是对数据类型很敏感
-
在我们研究的时候,请您告诉我们PHP_INT_MAX对于您的服务器的价值是多少?
-
int(2147483647) 所以你是对的。谢谢大家的帮助。为了将来的目的,我应该改变你的“正确”答案吗?
标签: php string comparison string-comparison comparison-operators