2

为什么我应该使用if (isset($var)) {}而不是仅仅使用if ($var) {}?它似乎做同样的事情,只是需要额外的处理。谢谢!

4

2 回答 2

6

原因

原因是,isset()当您检查变量是否存在并继续时,将返回布尔值并且不会引发警告。此外,变量可能具有零值:

  1. false
  2. 0
  3. ""

但它们已经设置好了。


例子

$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 回答