-1

isset()除了或empty()测试一个空变量还有更好的方法吗?

4

2 回答 2

4

这取决于上下文。

isset()只有当变量的值不是时才会返回 true NULL(因此至少定义了变量)。

empty()当变量的值被认为是“空”值时将返回 true,通常这意味着0, "0", NULL, FALSE, array()(一个空数组)和""(一个空字符串),其他任何东西都不为空。

一些例子

FALSE == isset($foo);
TRUE == empty($foo);
$foo = NULL;
FALSE == isset($foo);
TRUE == empty($foo);
$foo = 0;
TRUE == isset($foo);
TRUE == empty($foo);
$foo = 1;
TRUE == isset($foo);
FALSE == empty($foo);
于 2010-04-07T04:18:39.570 回答
2

不过,请留意使用 PHP 得到的一些奇怪的 == 结果;您可能需要使用 === 来获得您期望的结果,例如

if (0 == '') {
  echo "weird, huh?\n";
}

if  (0 === '') {
  echo "weird, huh?\n";
} else {
  echo "that makes more sense\n";
}

因为 0 为假,空字符串为假,所以 0 == '' 与 FALSE == FALSE 相同,即为真。使用 === 也会强制 PHP 检查类型。

于 2010-04-07T05:03:34.980 回答