2012-04-10 37 views
0

如何让“GET”了解数字0而不知道0是什么?PHP Make GET了解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

empty返回true如果你给它一个0;您可以使用isset,而不是检查是否设置(无论值):

if(isset($_GET['number'])) 

http://php.net/empty

返回false变种有一个非空和非零值。

以下的事情被认为是空的:

  • ""(空字符串)
  • 0(0作为整数)
  • 0.0(0为float)
  • "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; 
} 
+0

的第三字符。如果我这样做,将它回声“0”? – 2012-04-10 02:06:11

+0

@SamHam我刚刚测试过,是的,确实..你自己试过了吗? – 2012-04-10 02:07:22

+0

我刚刚做了,没有显示0 ... – 2012-04-10 02:08:36

1

试试这个:使用操作

if ($_GET['number'] !== '') 
+3

这不是“第3个字符”。它是严格的比较运算符。 – 2012-04-10 02:24:54

+0

俗称^^ – 2012-04-10 02:31:42