为什么我应该使用if (isset($var)) {}
而不是仅仅使用if ($var) {}
?它似乎做同样的事情,只是需要额外的处理。谢谢!
问问题
152 次
2 回答
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
于 2013-03-08T03:43:16.960 回答
1
您用于isset()
检查是否已声明变量。
另一种方法检查有什么值$var
。因此,如果$var
碰巧包含false
,则条件将为 false,但您不会知道变量是否未设置或变量包含false
。
于 2013-03-08T03:46:20.200 回答