2011-10-11 111 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

因为它是这样定义的。 –