0

我怎样才能让“GET”理解数字 0 而不理解 0 什么都不是?

if(empty($_GET['number'])) {
echo "No GET variables"; 
}

if($_GET['number']){
$number=strip_tags(addslashes(htmlspecialchars($_GET['number'])));
echo $number;
}

如果变量“数字”= 1,它将回显“1”,但如果数字为 0,它将回显“无 GET 变量”

我怎样才能让它理解 0 以及其他数字?

4

2 回答 2

4

emptytrue如果你给它一个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;
}
于 2012-04-10T02:05:08.090 回答
1

试试这个:使用运算符的第三个字符

if ($_GET['number'] !== '')
于 2012-04-10T02:23:45.687 回答