我需要检查变量是否设置为某些东西。到目前为止,我一直在使用strlen(),但这真的很尴尬,因为我很确定重复使用这不是一个非常有效的功能。
如何更有效地执行此类检查:
if (strlen($_GET['variable']) > 0)
{
Do Something
}
请注意,如果$_GET['variable'] = ''
只是为了澄清我的意思-如果我有,www.example.com?variable=&somethingelse=1
我不希望它渗透到 if 语句
你可以试试empty
。
if (!empty($_GET['variable'])) {
// Do something.
}
从好的方面来说,它还会检查变量是否已设置,即无需isset
单独调用。
关于不调用有一些混淆isset
。从文档中。
如果变量不存在或其值等于 FALSE,则认为该变量为空。如果变量不存在,empty() 不会生成警告。
和...
这意味着 empty() 本质上等同于 !isset($var) || $var == 假。
if(isset($_GET['variable']) && $_GET['variable']!=""){
}
如果您只想检查是否设置了任何 $_GET ,而不知道该值,只需计算 $_GET 数组:
<?php
if (count($_GET) == 0):
// do your stuff
else:
// do your other stuff
endif;
?>
if(isset($_GET['variable']) && !empty($_GET['variable']))
{
//Do Something
}
您可以使用检查,isset()
但我更愿意检查非空白字符 != ''
if (isset($_GET['variable'])) && ($_GET['variable']) != '')
怎么样
if ($_GET['variable'])
{
Do Something
}