如何检查$ _GET参数是否存在但没有值?

时间:2012-09-19 21:44:14

标签: php get isset is-empty

我想检查网址中是否存在app参数,但没有值。

示例:

my_url.php?app

我尝试了isset()empty(),但没有效果。我以前看过它,我忘记了。

4 个答案:

答案 0 :(得分:22)

空是正确的。你想要同时使用两者一起设置和清空

if(isset($_GET['app']) && !empty($_GET['app'])){
    echo "App = ".$_GET['app'];
} else {
    echo "App is empty";
}

答案 1 :(得分:5)

empty应该正常工作(if(empty($_GET[var]))...),因为它会检查以下内容:

  

以下内容被认为是空的:

     

"" (an empty string)
0 (0 as an integer)
0.0 (0 as a float)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
$var; (a variable declared, but without a value)

以下是您的备选方案:

is_null - 查找变量是否为NULL

if(is_null($_GET[var])) ...

defined - 检查给定的命名常量是否存在

if(defined($_GET[var])) ...

答案 2 :(得分:1)

if( isset($_GET['app']) && $_GET['app'] == "")
{

}

答案 3 :(得分:0)

您只需按 array_key_exists('param', $_GET);检查即可。

想象一下这是您的网址:http://example.com/file.php?param。它具有param查询参数,但它没有值。所以它的值实际上是null

如果array_key_exists('param', $_GET);存在,

true会返回param;如果它根本不存在,则返回false