2011-10-11 164 views
0

這怎麼可能?奇怪的變量行爲

$post_icon = $_REQUEST['icon']; 
if($post_icon == 0) 
    var_dump($post_icon); 

輸出:

string(15) "icon_smilie.gif" 

它不應該打印任何東西,如$post_icon不等於0

string(15) "icon_smilie.gif"這是我的圖標(通過無線電輸入選擇),但我不知道爲什麼,它正在經過0值。

問題是什麼?

+0

可能有些事情錯了你的HTML前端?你檢查過了嗎? – Sudantha

回答

4

在比較中,字符串轉換爲數字,即0

如果你比較了一些用細繩或比較涉及數字字符串,那麼每個字符串轉換爲數字和比較數值執行。

值由所述串的初始部分中給出。如果字符串以有效的數字數據開頭,則這將是使用的值。否則,該值將爲0(零)。

改爲使用嚴格比較===。它還比較類型的值

Comparison OperatorsPHP type comparison tablesStrings(在底部,字符串轉換爲數字)

+0

謝謝,爲什麼它發生? – Cyclone

+0

因爲它是這樣定義的。 –