2012-03-20 15 views
1

這太瘋狂了。我在寫一個應用程序時遇到了這個問題。以下代碼將回顯「是」:PHP將字符串「現金」解釋爲零

<?php 
$var = 0; 
if ($var == 'cash') echo 'YES'; 
else echo 'WEIRD'; 
?> 

WHY ???零解釋如何等於'現金'?

+0

爲$ VAR應該是一個字符串值或數字? – 2012-03-20 15:26:51

+5

這是PHP最基本的行爲之一,並在無數問題中提到。請參閱[這裏](http://php.net/manual/en/types.comparisons.php)以獲取相關文檔,如果您想查看您期望看到的內容,請使用'==='。 – Jon 2012-03-20 15:27:06

+0

@MarcB RTFM ...很好。 – iambriansreed 2012-03-20 15:29:26

回答

5

當你比較一個數字和一個字符串時,該字符串被轉換爲數字。將字符串'現金'轉換爲數字時,結果爲零。您可以使用嚴格比較(===),因此不僅可以比較值,還可以比較類型,並且不會涉及type casting

0

您試圖將整數與字符串進行比較。

我會用===運營商進行嚴格的比較