2012-04-10 6 views
0

0が何もないことを理解することなく、「GET」に数字0を理解させるにはどうすればよいですか?PHP GETを理解する0

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

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

を、それは「1」をエコーし​​ますが、数が0であれば、それは「いいえGET変数を」エコーません= 1変数「数」はどのように私はそれが他のと同様に0を理解させることができれば数字?

答えて

4

empty0を入力するとtrueが返されます。あなたはそれが(関係なく、値の)設定されているかどうかを確認する代わりにissetを使用することができます。

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

http://php.net/emptyから:

戻り値はFALSE varが空でないとゼロ以外の値を持っている場合。

以下のものが空であると考えられる:

    ""
  • (空文字列)
  • 0(整数として0)
  • 0.0(floatとして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; 
} 
+0

の第三のcharを使用していますか? –

+0

@ Samham私はちょうどテストしたし、確かに..あなたはそれを自分で試してみましたか? –

+0

私はちょうど、did not show 0 ... –

1

これを試してみてください。私はそれが「0」をエコーし​​ます行う場合はオペレータ

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

これは「3番目の文字」ではありません。これは厳密な比較演算子です。 –

+0

レイマン^^ –

関連する問題