回答
你的字符串"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. 为什么1!= 1返回true?
- 2. 为什么(1 <1 <1)在C++中返回true?
- 3. 为什么(1 + 1)和1返回1而不是2?
- 4. 为什么1 && 2返回2?
- 5. 为什么getdate返回1 \ 1 \ 1900
- 6. 1 ==(int)0.5 * 2 => false,1 ==((int)0.5 * 2)=> true,为什么?
- 7. 为什么我的计算器在2^34 == 2^34 - 1时返回true?
- 8. 为什么“/”。 PHP中的日期(“Y”)+ 1返回1?
- 9. 为什么retainCount返回-1
- 10. 为什么IndexOf返回-1?
- 11. 为什么HttpURLConnection.getResponseCode()返回1?
- 12. 为什么GetCurrentProcess返回-1?
- 13. SDL_BlitSurface()返回-1 ...为什么?
- 14. 为什么[] .push([])返回1?
- 15. 为什么sqlitedatabase.insert返回-1?
- 16. 为什么UINT_MAX返回-1?
- 17. 为什么在JavaScript中返回-1
- 18. Common Lisp为什么(列表+ 1 2)评估为('(+ 1 2)1 2)
- 19. 1 = 1在T-SQL中返回False - 为什么?
- 20. preg_match总是返回true/1
- 21. PHP - 为什么|| OR返回值时返回1吗?
- 22. PHP - 返回-1是什么意思?
- 23. 为什么“[[1,2],[3,4]]。indexOf([1,2])”返回-1?
- 24. 为什么这只返回1行?
- 25. Matlab Buttord返回Wn> 1为什么?
- 26. “True or -1> None”返回True
- 27. 为什么sql server在1/2时返回0?
- 28. 为什么在将1除以2或4时返回0?
- 29. 为什么fetchColumn()在有2列时返回1?
- 30. 为什么1 :: 2 :: []和[1; 2]在OCaml中的==不一样?
是反引号并在此弯引号部分? – Rizier123
不对不起! –
@ Rizier123你能解释一下吗? –