回答
你的字符串"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你能解釋一下嗎? –