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

问题描述 投票:0回答:4

我想检查URL中是否存在

app
参数,但没有值。

示例:

my_url.php?app

我尝试了

isset()
empty()
,但不起作用。我以前见过它是怎么做的,但我忘记了。

php get isset is-empty
4个回答
34
投票

空是正确的。你想同时使用 set 和 empty

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

5
投票

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

以下内容视为空:

""(空字符串)
0(0 作为整数)
0.0(0 作为浮点数)
“0”(0 作为字符串)
无效的
错误的
array() (空数组)
$var; (声明了变量,但没有值)

以下是您的替代方案:

is_null
- 查找变量是否为 NULL

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

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

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

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

}

2
投票

您只需通过

array_key_exists('param', $_GET);
即可检查。

想象这是您的网址:

http://example.com/file.php?param
。它具有
param
查询参数,但没有值。所以它的值实际上是
null

如果

array_key_exists('param', $_GET);

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

© www.soinside.com 2019 - 2024. All rights reserved.