📜  isset() 和 empty() 函数的区别(1)

📅  最后修改于: 2023-12-03 15:15:53.548000             🧑  作者: Mango

isset() 和 empty() 函数的区别

在 PHP 中, isset() 和 empty() 都是用来检查变量是否存在,但两者的检查内容有所不同。

isset()

isset() 函数用来检查变量是否已经被初始化,如果已经被初始化并且不是 NULL,则返回 true;否则,返回 false。

例如:

<?php
$var = "";
if (isset($var)) {
    echo "变量已被初始化";
} else {
    echo "变量未被初始化";
}
?>

上面的代码将输出 "变量已被初始化",因为 $var 已经被初始化,虽然它的值是空字符串。

empty()

empty() 函数用来检查一个变量是否为空值,包括:

  • "" (空字符串)
  • 0 (作为整数的零)
  • "0" (作为字符串的零)
  • NULL
  • FALSE
  • array() (空数组)
  • $var; (一个声明了,但没有赋值的变量)

例如:

<?php
$var1 = "";
$var2 = "0";
$var3 = NULL;
$var4 = array();

if (empty($var1)) {
    echo '$var1 为空';
}

if (empty($var2)) {
    echo '$var2 为空';
}

if (empty($var3)) {
    echo '$var3 为空';
}

if (empty($var4)) {
    echo '$var4 为空';
}
?>

上面的代码将输出:

$var1 为空 
$var2 为空 
$var3 为空 
$var4 为空 

因为它们都是空值。

注意:当 $var 定义了但未赋值时,isset($var) 返回 false,empty($var) 返回 true。

使用建议
  • isset() 用于检查变量是否已被初始化。
  • empty() 用于检查变量是否为空值。
  • 通常不需要使用 isset() 检查一个变量是否为空值,因为 empty() 已经检查了。
  • 可以使用 !empty() 来检查一个变量是否存在并且不为空值。