对于可能存在或不存在的变量执行if / else语句的正确方法是什么?
例如:我有一个网站搜索脚本,可以从URL获取变量。如果用户未检查任何高级选项,则它们不会包含在URL中。基本上我想知道的是,如果变量不存在,使用类似下面的内容是否正确?
if ($variable == "yes") { do stuff; }
如果该变量不存在,是否会导致任何问题?或者我应该总是使用类似的东西:
if (isset($variable) && $variable == "yes") { do stuff; }
答案 0 :(得分:2)
尝试将if值等于if语句,这样你永远不会得到错误通知及其正确
if(isset($value)){
if($value==='this'){
//magic
}
}
答案 1 :(得分:0)
第二种方式imo,因为如果没有设置,它将抑制$ variable不存在的通知错误。无论哪种方式,它只是一个通知错误 - 所以你可以只是抑制通知并使用第一种方式..
答案 2 :(得分:0)
如果变量不存在,则不会生成警告。这意味着empty()
基本上简洁等同于!isset($var) || $var == false
。
// $foo = 'no';
if(!empty($foo) AND $foo == 'yes')
{
echo $foo;
}
答案 3 :(得分:-1)
在检查变量的值之前,请使用isset进行检查并设置默认值,如
if (!isset($variable)) {
$variable = "no";
}
if ($variable == "yes") { do stuff; }