在PHP中,empty()
和 isset()
都可以用来检查一个变量是否为空,但它们之间有一些区别。
isset()
函数用于检测一个变量是否已经设置,如果一个变量已经被设置且其值不为NULL,那么isset()
返回TRUE,否则返回FALSE。
empty()
函数用于检测一个变量是否为空,如果一个变量不存在、为NULL、为FALSE、为空字符串、为0、为0.0、为空数组则返回TRUE,否则返回FALSE。
所以,当你需要检查一个变量是否设置且不为NULL时,使用isset()
。而当你需要检查一个变量是否为空(包括未设置或为NULL)时,使用empty()
。
例如:
$var1 = '';
$var2 = NULL;
$var3 = 0;
$var4 = '0';
$var5 = false;
// 使用 isset()
echo isset($var1) ? 'var1 已设置' : 'var1 未设置'; // 输出:var1 已设置
echo isset($var2) ? 'var2 已设置' : 'var2 未设置'; // 输出:var2 未设置
echo isset($var6) ? 'var6 已设置' : 'var6 未设置'; // 输出:var6 未设置
// 使用 empty()
echo empty($var1) ? 'var1 为空' : 'var1 非空'; // 输出:var1 为空
echo empty($var2) ? 'var2 为空' : 'var2 非空'; // 输出:var2 为空
echo empty($var3) ? 'var3 为空' : 'var3 非空'; // 输出:var3 为空
echo empty($var4) ? 'var4 为空' : 'var4 非空'; // 输出:var4 非空
echo empty($var5) ? 'var5 为空' : 'var5 非空'; // 输出:var5 为空
echo empty($var6) ? 'var6 为空' : 'var6 非空'; // 输出:var6 为空
从上面的例子可以看出,isset()
只检查变量是否设置且不为NULL,而 empty()
检查变量是否为空(包括未设置或为NULL)。根据实际需求选择合适的函数。