为什么我应该使用if (isset($var)) {}
而不仅仅是if ($var) {}
?它似乎做同样的事情,只是采取额外的处理。谢谢!
答案 0 :(得分:6)
<强>原因强>
原因是,isset()
将返回布尔值,并在检查变量是否存在时不会发出警告并继续。此外,变量可能具有零值:
false
0
""
但他们已经确定了。
示例强>
$varb = false;
$vari = 0;
$vars = "";
isset($varb) // true
isset($vari) // true
isset($vars) // true
if ($varb) // false
if ($vari) // false
if ($vars) // false
答案 1 :(得分:1)
您使用isset()
检查是否已声明变量。
另一种方法检查$var
的值。因此,如果$var
碰巧包含false
,则条件将为false,但您不会设置变量是否未设置或变量是否包含false
。