检查php get变量是否设置为任何值?

检查php get变量是否设置为任何值?,php,get,strlen,Php,Get,Strlen,我需要检查变量是否设置为某个值。到目前为止,我一直在使用strlen(),但这确实让人尴尬,因为我很确定,反复使用strlen()不是一个非常有效的函数 如何更有效地执行此类检查: if (strlen($_GET['variable']) > 0) { Do Something } 注意,如果$\u GET['variable']='' 为了澄清我的意思-如果我有www.example.com?variable=&somethingelse=1,我不想让它穿透If语句你可以使用

我需要检查变量是否设置为某个值。到目前为止,我一直在使用strlen(),但这确实让人尴尬,因为我很确定,反复使用strlen()不是一个非常有效的函数

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

if (strlen($_GET['variable']) > 0)
{
    Do Something
}
注意,如果
$\u GET['variable']=''


为了澄清我的意思-如果我有
www.example.com?variable=&somethingelse=1
,我不想让它穿透If语句你可以使用check for
isset()
,但我更愿意用
!=''检查非空字符

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

}

您可以尝试
清空

if (!empty($_GET['variable'])) {
  // Do something.
}
另一方面,它还将检查变量是否已设置,即不需要单独调用
isset

关于不调用
isset
,存在一些混淆。从

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

而且

这意味着empty()本质上是与!isset($var)| |$var==false

就这样怎么样

if ($_GET['variable'])
{
     Do Something
}

如果只想检查是否设置了任何$\u GET,而不知道其值,只需计算$\u GET数组:

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


如果一个输入将有
value=”“
isset将为true,但仍然为空,是的,这就是Q想要的:注意,如果$\u GET['variable']='@AxelAmthor,我不希望它做任何事情,但如果value=“”,上面的代码将做一些事情。它被设置了,所以if条件将是
true
。这似乎现在可以工作了,并且比strlen可能的hmmmm更有效。所以很明显没有内置函数,很遗憾:)@AmyNeville,实际上,有一个内置函数:
empty
,正如我在下面的回答中所解释的。这并不令人尴尬,它可以按照您的意愿工作,可读性和可理解性。为了澄清我的意思-如果我有www.example.com?variable=&somethingelse=1,我不想让它穿透,如果statementAwww,我会尽量不为我的脚本感到尴尬,但有时这很难@Winston,来自:如果变量不存在或其值等于FALSE,则认为该变量为空。如果变量不存在,empty()不会生成警告。你说得对!很抱歉但早些时候,如果你这样写,它可能会引起注意。@Winston,我以前也对此感到困惑,但我已经看到它在使用了很长一段时间,没有任何通知(我总是保持
错误报告
)。你知道哪个版本可能会做出这样的改变吗?是的,我在php文档中看到的是,它说它正在改变empty()在不同版本之间响应的内容——这很难令人振奋confidence@AmyNeville哪里我没有在文档中的变更日志中看到这种行为。最接近的是
5.0.0
中的更改,其中“没有属性的对象不再被认为是空的”。但我认为这不适用于您的场景。或者:如果($\u GET['variable']!=”),如果要使用
empty
,则不需要调用
isset
。您可以查看我的答案以了解详细信息,或者查看。
if ($_GET['variable'])
{
     Do Something
}
<?php
if (count($_GET) == 0):
    // do your stuff
else:
    // do your other stuff
endif;
?>