[英]Why does “1|2” == 1 return true in PHP?
為什么這段代碼返回True而不是False?
"1|2" == 1
為什么不返回False?
注意:1 | 2是字符串。
您的字符串"1|2"
將轉換為整數,以便與整數1進行比較。
根據PHP的類型轉換規則 ,將字符串轉換為整數會將字符串中的所有前導數字轉換為第一個非數字(給出1
,忽略|2
因為|
是第一個非數字。
1 == 1
是真的
轉換為數字時, "1|2"
變為1
因為轉換處理字符串直到第一個非數字字符。 1 == 1
所以這是真的。 在==
比較期間,字符串將轉換為數字
如果將數字與字符串進行比較或比較涉及數字字符串,則每個字符串將轉換為數字,並且數字執行比較。
http://php.net/manual/en/language.operators.comparison.php
如果你想修復它,使用===
運算符,它也會檢查類型
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.