2012-04-10 40 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