回答
你的字符串"1|2"
被强制转换为整数的比较整数1
据PHP's type casting rules,铸造字符串整数通吃领先的数字从字符串到第一个非数字(给1
,和忽略|2
因为|
是第一个非数字的。
1 == 1
为真
“1 | 2”是字符串! –
谢谢你的回答!如何解决它然后返回错误? –
如何解决它?重写你的逻辑是逻辑上返回一个假的东西(例如''1 | 2 == == 2'或'1 | 2 == 1') –
当转换成数"1|2"
变得1
因为该演员阵列会处理该字符串直到第一个非数字字符。 1 == 1
所以这是真的。如果比较的字符串数串期间==
比较
转换成数字或所述比较涉及 数字串,则每一个字符串被转换为数字和数值进行 比较。
http://php.net/manual/en/language.operators.comparison.php
如果你要修复它使用===
运营商也将检查类型
- 1. 为什么(true && 1)返回1,但(1 && true)返回true?
- 2. 为什么1!= 1返回true?
- 3. 为什么(1 <1 <1)在C++中返回true?
- 4. 为什么在PHP中(-1> false)返回true?
- 5. 为什么(1 + 1)和1返回1而不是2?
- 6. 为什么1 && 2返回2?
- 7. 为什么Python为“True和1”表达式返回1?或假“假1”?
- 8. 为什么(Integer)1 ==(Integer)1返回true,但(Integer)200 ==(Integer)200返回false?
- 9. 1 ==(int)0.5 * 2 => false,1 ==((int)0.5 * 2)=> true,为什么?
- 10. 为什么getdate返回1 \ 1 \ 1900
- 11. 为什么我的计算器在2^34 == 2^34 - 1时返回true?
- 12. `[1] == [1]`返回“false”并且`[1] == 1`返回“true”?
- 13. 为什么“/”。 PHP中的日期(“Y”)+ 1返回1?
- 14. 为什么IndexOf返回-1?
- 15. 为什么ISNUMERIC('。')返回1?
- 16. 为什么UINT_MAX返回-1?
- 17. 为什么sqlitedatabase.insert返回-1?
- 18. 为什么[] .push([])返回1?
- 19. 为什么retainCount返回-1
- 20. 为什么GetCurrentProcess返回-1?
- 21. 为什么HttpURLConnection.getResponseCode()返回1?
- 22. SDL_BlitSurface()返回-1 ...为什么?
- 23. 为什么在JavaScript中返回-1
- 24. Common Lisp为什么(列表+ 1 2)评估为('(+ 1 2)1 2)
- 25. 1 = 1在T-SQL中返回False - 为什么?
- 26. get_status()函数返回1而不是true或false,为什么?
- 27. preg_match总是返回true/1
- 28. PHP - 为什么|| OR返回值时返回1吗?
- 29. 在python中返回1而不是true
- 30. 为什么strtotime(1970年1月1日)在PHP中返回-3600而不是0?
是反引号并在此弯引号部分? – Rizier123
不对不起! –
@ Rizier123你能解释一下吗? –