我对这个平等的操作员感到有点难过。
echo(2 ==“2.5time”)
应输出为1 / true。
“2.5time”字符串应该转换为整数,输出2作为整数。
但它似乎没有输出任何东西。
任何人都可以解释一下吗?
答案 0 :(得分:4)
如果它没有输出任何东西意味着它是假的,做一个var_dump(2 ==“2.5time”)来看看发生了什么。
答案 1 :(得分:2)
比较是PHP解析字符串并获得2.5的浮点数。然后将它与您的整数进行比较,该整数被视为浮动2.0
答案 2 :(得分:1)
如果您希望将字符串开头的数字作为整数处理,那么您必须键入将它们转换为整数,因此
if(2 == (int)"2.5times") // will be true
答案 3 :(得分:0)
如果使用==运算符,则会比较所有字符串。
(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来查找字符串中的子字符串。