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;
}