PHP isset() 和 empty() 区别?
参考答案:
在 PHP 中,isset() 和 empty() 是两个常用的函数,用于检查变量是否已设置或是否为空。虽然它们在某些情况下可能看起来相似,但它们实际上有不同的用途和行为。
- isset()
isset() 函数用于检查变量是否已设置并且非 NULL。它返回一个布尔值,如果变量存在并且不为 NULL,则返回 true,否则返回 false。
示例:
$var = '';
if (isset($var)) {
echo "Variable is set.";
} else {
echo "Variable is not set.";
}
// 输出: Variable is set.
在这个例子中,$var 已经被设置(即使它的值为空字符串),所以 isset($var) 返回 true。
- empty()
empty() 函数用于检查一个变量是否为空。一个变量被认为是“空”的,如果它不存在,或者它的值等同于 false。这包括:
""(一个空字符串)0(作为整数的0)0.0(作为浮点数的0)"0"(一个包含0的字符串)NULLFALSEarray()(一个空数组)$var;(一个声明了但没有值的变量)
示例:
$var = '';
if (empty($var)) {
echo "Variable is empty.";
} else {
echo "Variable is not empty.";
}
// 输出: Variable is empty.
在这个例子中,$var 的值为空字符串,所以 empty($var) 返回 true。
区别:
isset()只检查变量是否已设置并且不为 NULL。它不关心变量的值是什么。empty()检查变量是否存在,并且其值是否等同于“空”。它考虑更多的情况,如空字符串、0、NULL 等。
通常,当你只关心变量是否已设置时,可以使用 isset()。而当你关心变量是否存在并且其值是否有效时,可以使用 empty()。但请注意,对于某些情况(如检查数组元素是否存在),你可能需要结合使用 isset() 和其他方法。