empty
true
如果你给它一个0
;返回 您可以isset
改为检查它是否已设置(无论值如何):
if(isset($_GET['number']))
来自http://php.net/empty:
如果 var 具有非空且非零值,则返回 FALSE。
以下内容被认为是空的:
""
(一个空字符串)
0
(0 为整数)
0.0
(0 作为浮点数)
"0"
(0 作为字符串)
NULL
FALSE
array()
(一个空数组)
var $var;
(声明的变量,但在类中没有值)
我的测试:
$_GET['number'] = "0";
assert(isset($_GET['number']));
$_GET['number'] = 0;
assert(isset($_GET['number']));
您的代码应如下所示:
if(!isset($_GET['number'])) {
echo "No GET variables";
}
if(isset($_GET['number'])) {
$number=strip_tags(addslashes(htmlspecialchars($_GET['number'])));
echo $number;
}
或者更简洁
if(!isset($_GET['number'])) {
echo "No GET variables";
} else {
$number=strip_tags(addslashes(htmlspecialchars($_GET['number'])));
echo $number;
}