isset()
除了或empty()
测试一个空变量还有更好的方法吗?
问问题
182 次
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 回答