爲什麼這個總是返回true
:比較兩個變量返回錯誤結果
$s = '334rr';
$i = (int)$s;
if ($i == $s) {
echo true;
} else {
echo false;
}
如果我贊同$i
它給人的334
的價值,這是不同於$s
這是334rr
。
爲什麼這個總是返回true
:比較兩個變量返回錯誤結果
$s = '334rr';
$i = (int)$s;
if ($i == $s) {
echo true;
} else {
echo false;
}
如果我贊同$i
它給人的334
的價值,這是不同於$s
這是334rr
。
如果你比較多個具有一個字符串或比較涉及數字串,則每一個字符串被轉換爲數字和數值進行比較。
因此:($i == $s)
與您所給出的值相同($i == (int)$s)
。
使用===
來避免類型雜耍。
當使用==
與整數比較字符串時,字符串將嘗試將大小寫轉換爲整數。
不推薦將字符串與int進行比較。您應該使用===
,它將驗證相同的數據類型以及相同的值。
與另一個整數($ i)比較時,PHP將$ s字符串轉換爲整數。 它基本上做到這一點(當然,我不知道它在內部做,但它歸結爲):
if($i == (int) $s)
這使得語句真
試試這個
$s = '334rr';
$i = intval($s);
if ($i == $s) {
echo true;
} else {
echo false;
}