奇怪的变量行为

时间:2011-10-11 17:02:39

标签: php variables

这怎么可能?

$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值。

有什么问题?

1 个答案:

答案 0 :(得分:4)

比较时,字符串将转换为数字,即0

  

如果您将数字与字符串进行比较或比较涉及数字字符串,则每个字符串都会转换为数字,并且数字会进行比较。

  

该值由字符串的初始部分给出。如果字符串以有效数字数据开头,则这将是使用的值。否则,该值将为0(零)。

使用严格比较===代替。它还会比较值的类型

请参阅Comparison OperatorsPHP type comparison tables以及Strings(在底部,字符串转换为数字)