0

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

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

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

変数 "number" = 1 の場合は "1" と表示されますが、数値が 0 の場合は "No GET variables" と表示されます

0だけでなく他の数字も理解できるようにするにはどうすればよいですか?

4

2 に答える 2

4

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;
}
于 2012-04-10T02:05:08.090 に答える
1

これを試してください:演算子の3番目の文字を使用して

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