16

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

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

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

请注意,如果$_GET['variable'] = ''

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

4

6 回答 6

33

你可以试试empty

if (!empty($_GET['variable'])) {
  // Do something.
}

从好的方面来说,它还会检查变量是否已设置,即无需isset单独调用。

关于不调用有一些混淆isset。从文档中。

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

和...

这意味着 empty() 本质上等同于 !isset($var) || $var == 假。

于 2013-06-08T12:27:19.040 回答
7
 if(isset($_GET['variable']) && $_GET['variable']!=""){

}
于 2013-06-08T12:27:09.220 回答
4

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

<?php
if (count($_GET) == 0):
    // do your stuff
else:
    // do your other stuff
endif;
?>
于 2014-10-01T13:45:37.617 回答
2
if(isset($_GET['variable']) && !empty($_GET['variable']))
{
//Do Something
}
于 2013-06-08T12:29:57.213 回答
0

您可以使用检查,isset()但我更愿意检查非空白字符 != ''

if (isset($_GET['variable'])) && ($_GET['variable']) != '')
于 2013-06-08T12:27:17.280 回答
0

怎么样

if ($_GET['variable'])
{
     Do Something
}
于 2013-06-08T12:31:29.500 回答