【发布时间】:2010-12-16 22:45:55
【问题描述】:
我目前正在研究 O'Reilly 的“PHP 编程”,并遇到了这个标题为“比较运算符执行的比较类型”的表格:
第一个操作数 |第二个操作数 |比较 -------------------------------------------------- --------------------- 号码 |号码 |数字 数字字符串 |数字字符串 |数字 数字字符串 |号码 |数字 非数字字符串 |号码 |辞典 数字字符串 |非数字字符串 |辞典 非数字字符串 |非数字字符串 |辞典对于执行哪种类型的比较,我的经验法则是“当且仅当至少一个操作数是数字或两个操作数都是数字字符串时是数字的”。 php.net page on Comparison Operators 似乎支持这一点,其中指出“如果将整数与字符串进行比较,则字符串将转换为数字。如果比较两个数字字符串,则将它们作为整数进行比较。”
但是,这意味着表格第四行中的比较应该是“数字”。表格是否包含错误,还是我的规则有误?
【问题讨论】:
-
你的规则是错误的。尝试比较
"string" == 0和intval("string") == 0 -
@Ast Derek:两个比较的结果似乎都是真的。
标签: php comparison operators