2015-07-28 80 views

回答

2

你的字符串"1|2"被强制转换为整数的比较整数1

PHP's type casting rules,铸造字符串整数通吃领先的数字从字符串到第一个非数字(给1,和忽略|2因为|是第一个非数字的。

1 == 1为真

+0

“1 | 2”是字符串! –

+0

谢谢你的回答!如何解决它然后返回错误? –

+0

如何解决它?重写你的逻辑是逻辑上返回一个假的东西(例如''1 | 2 == == 2'或'1 | 2 == 1') –

1

当转换成数"1|2"变得1因为该演员阵列会处理该字符串直到第一个非数字字符。 1 == 1所以这是真的。如果比较的字符串数串期间==比较

转换成数字或所述比较涉及 数字串,则每一个字符串被转换为数字和数值进行 比较。

http://php.net/manual/en/language.operators.comparison.php

如果你要修复它使用===运营商也将检查类型