2015-07-12 62 views
-5

我剛剛發現發現這個簡單的比較成真。有人可以解釋爲什麼或者給我一個解釋它的鏈接嗎?得到無效結果?

<?php 
var_dump((897 == "897,898,906,907,884")); 
+5

你用'==='而不是嘗試過嗎?如果不是,則右側被強制爲一個整數值,表達式將產生「true」。 –

+0

http://fr2.php.net/manual/en/language.operators.comparison.php – Blackhole

+0

我知道'==='。但是'=='會爲'(897 ==「897898」)' – Habibillah

回答

4

當你比較整數和字符串,字符串轉換爲整數。

例如:

var_dump((int)"897,898,906,907,884"); 

給你:

int 897 

所以這就是爲什麼結果是true

請檢查這個documentation

+0

返回false爲什麼把這個比較爲int而不是字符串? – Habibillah

+1

如文檔中所述,如果您將數字與字符串進行比較或者比較涉及數字字符串,則將每個字符串轉換爲數字,並以數字形式進行比較。 – zilongqiu