這怎麼可能?奇怪的變量行爲
$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
值。
問題是什麼?
這怎麼可能?奇怪的變量行爲
$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
:
如果你比較了一些用細繩或比較涉及數字字符串,那麼每個字符串轉換爲數字和比較數值執行。
和
值由所述串的初始部分中給出。如果字符串以有效的數字數據開頭,則這將是使用的值。否則,該值將爲0(零)。
改爲使用嚴格比較===
。它還比較類型的值。
見Comparison Operators和PHP type comparison tables和Strings(在底部,字符串轉換爲數字)
謝謝,爲什麼它發生? – Cyclone
因爲它是這樣定義的。 –
可能有些事情錯了你的HTML前端?你檢查過了嗎? – Sudantha