检查php get variable是否设置为什么?

Amy*_*lle 15 php get strlen

我需要检查变量是否设置为某些东西.到目前为止,我一直在使用strlen(),但这确实令人尴尬,因为我很确定这不是一个非常有效的功能,可以重复使用.

如何更有效地执行此类检查:

if (strlen($_GET['variable']) > 0)
{
    Do Something
}
Run Code Online (Sandbox Code Playgroud)

请注意,我不希望它做任何事情 $_GET['variable'] = ''

只是为了澄清我的意思 - 如果我有,www.example.com?variable=&somethingelse=1我不希望它渗透那个if语句

hw.*_*hw. 30

你可以试试empty.

if (!empty($_GET['variable'])) {
  // Do something.
}
Run Code Online (Sandbox Code Playgroud)

在正面,它还将检查变量是否设置,即不需要isset单独调用.

关于不打电话有一些困惑isset.从文档中.

如果变量不存在或者其值等于FALSE,则该变量被视为空.如果变量不存在,则empty()不会生成警告.

和...

这意味着empty()基本上是!isset($ var)||的简洁等价物 $ var == false.

  • 这是不正确的,因为可能是抛出通知.使用isset (3认同)
  • @Winston,来自[文档](http://in3.php.net/empty):如果变量不存在或其值等于FALSE,则将其视为空。如果变量不存在,则empty()不会生成警告。 (2认同)

Sri*_*lli 7

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

}
Run Code Online (Sandbox Code Playgroud)

  • 如果输入将具有`value =""`isset将是真的但仍然是空的 (2认同)

小智 5

如果您只想检查是否设置了 $_GET,而不知道该值,只需计算 $_GET 数组即可:

<?php
if (count($_GET) == 0):
    // do your stuff
else:
    // do your other stuff
endif;
?>
Run Code Online (Sandbox Code Playgroud)