这怎么可能?奇怪的变量行为
$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