if / else with unclared variable

时间:2013-12-11 01:07:33

标签: php

对于可能存在或不存在的变量执行if / else语句的正确方法是什么?

例如:我有一个网站搜索脚本,可以从URL获取变量。如果用户未检查任何高级选项,则它们不会包含在URL中。基本上我想知道的是,如果变量不存在,使用类似下面的内容是否正确?

if ($variable == "yes") { do stuff; }

如果该变量不存在,是否会导致任何问题?或者我应该总是使用类似的东西:

if (isset($variable) && $variable == "yes") { do stuff; }

4 个答案:

答案 0 :(得分:2)

尝试将if值等于if语句,这样你永远不会得到错误通知及其正确

if(isset($value)){
   if($value==='this'){
     //magic 
   }
}

答案 1 :(得分:0)

第二种方式imo,因为如果没有设置,它将抑制$ variable不存在的通知错误。无论哪种方式,它只是一个通知错误 - 所以你可以只是抑制通知并使用第一种方式..

答案 2 :(得分:0)

empty

如果变量不存在,则不会生成警告。这意味着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; }