【发布时间】:2012-12-07 21:03:02
【问题描述】:
可能重复:
How do the equality (== double equals) and identity (=== triple equals) comparison operators differ?
为什么会这样
var_dump(0 == "string");
输出这个
bool(true)
== 运算符的上下文不是应该根据this set of rules 将0 转换为FALSE 和"string" 转换为TRUE 吗?
【问题讨论】:
-
试试
===,我想它会给你错误的。 -
但即使作为比较,这也应该是错误的,不是吗?
-
解释这种行为:您正在比较一个整数和一个字符串。 PHP 将字符串转换为 int,即 0(因为它不包含任何数字表示)。 0 == 0 显然是正确的。
-
PHP 的第一条规则。学会不要对任何事情感到惊讶。
标签: php types casting type-conversion