我需要检查变量是否设置为某种东西。到目前为止,我一直在使用 strlen(),但 真的很尴尬 ,因为我很确定这不是一个非常有效的功能正在重复使用。
如何更有效地执行此类检查:
if (strlen($_GET['variable']) > 0)
{
Do Something
}
请注意,如果$_GET['variable'] = ''
只是为了澄清我的意思 - 如果我有www.example.com?variable=&somethingelse=1
我不希望它渗透到if语句
答案 0 :(得分:28)
您可以尝试empty
。
if (!empty($_GET['variable'])) {
// Do something.
}
在正面,还会检查变量是否设置,即无需单独调用isset
。
关于不调用isset
存在一些混淆。来自documentation。
如果变量不存在或者其值等于FALSE,则该变量被视为空。如果变量不存在,empty()不会生成警告。
和...
这意味着empty()基本上是!isset($ var)||的简洁等价物$ var == false。
答案 1 :(得分:7)
if(isset($_GET['variable']) && $_GET['variable']!=""){
}
答案 2 :(得分:2)
if(isset($_GET['variable']) && !empty($_GET['variable']))
{
//Do Something
}
答案 3 :(得分:1)
如果您只是想检查是否设置了任何$ _GET,而不知道该值只计算$ _GET数组:
<?php
if (count($_GET) == 0):
// do your stuff
else:
// do your other stuff
endif;
?>
答案 4 :(得分:0)
您可以使用isset()
检查,但我还希望检查!= ''
if (isset($_GET['variable'])) && ($_GET['variable']) != '')
答案 5 :(得分:0)
怎么样只是
if ($_GET['variable'])
{
Do Something
}