2013-07-13 51 views
2

非常奇怪的問題,我從來沒有見過類似的東西。讓我們來看看代碼:Php說「問號」等於零

$_POST['SCORE1'] = 4; 
$_POST['SCORE2'] = 0; 
var_dump ($_POST['SCORE1']); 
var_dump ($_POST['SCORE2']); 
var_dump ($_POST['SCORE1'] == '?'); 
var_dump ($_POST['SCORE2'] == '?'); 

呼應以下內容:

int(4) 
int(0) 
bool(false) 
bool(true) ??? wtf ??? 

我不明白是最後一個。 0 =?

+0

儘可能使用嚴​​格比較('==='),以避免類型雜耍 – Maks3w

回答

4

在此表達式$_POST['SCORE2'] == '?') php將字符串?轉換爲數字值。當它轉換成值爲0.所以0==0是真的。

+1

有趣......多年後,我沒有經歷過。 Php一直在做它? –

+0

同樣的方式POST全局變換dotts'.'到'_' – samayo

+0

是它的鬆散類型的行爲,如果你比較一個字符串與int發生。 – DevZer0