【发布时间】:2012-09-21 19:43:42
【问题描述】:
我对这个相等运算符有点困惑。
回声 (2 == "2.5time")
应该输出为 1/true。
“2.5time”字符串应类型转换为整数并输出 2 作为整数。
但它似乎没有输出任何东西。
谁能解释一下?
【问题讨论】:
-
嗯,这就是我正在测试的完整代码。
标签: php casting equals operator-keyword
我对这个相等运算符有点困惑。
回声 (2 == "2.5time")
应该输出为 1/true。
“2.5time”字符串应类型转换为整数并输出 2 作为整数。
但它似乎没有输出任何东西。
谁能解释一下?
【问题讨论】:
标签: php casting equals operator-keyword
如果它没有输出任何内容,则表示为假,请执行 var_dump(2 == "2.5time") 以查看发生了什么。
【讨论】:
比较是让 PHP 解析字符串并得到一个数字 2.5,这是一个浮点数。然后将其与您的整数进行比较,该整数被视为浮点数 2.0
【讨论】:
如果您希望将字符串开头的数字作为整数处理,则必须将它们类型转换为整数,因此
if(2 == (int)"2.5times") // will be true
【讨论】:
如果使用 == 运算符,则会比较所有的 String。
(2 == "2") // is true, because is the same value
(2 === "2") // is false, because is the same value, but is different types
(2 == "23") // is false, contains different values
但在您的情况下,最好使用strpos 在字符串中查找子字符串。
【讨论】: