小熊奶糖(BearCandy)
小熊奶糖(BearCandy)
发布于 2023-12-16 / 28 阅读
0
0

php 比较 isset is_null empty的用法和区别以及注意事项

在 PHP 中,isset(), empty()is_null() 是三个用于检查变量状态的关键字或函数。它们各自具有不同的用途,具体如下:

isset()

isset() 是一个语言结构,用于检查变量是否已设置并且非 NULL。如果变量已设置且其值不是 NULL,则 isset() 返回 true;反之则返回 false。请注意,仅当变量存在并且其值不为 NULL 时,才认为变量“已设置”。

<?php 
$x = "Hello"; 
if (isset($x)) { 
echo "$x is set"; 
} else { 
echo "$x is not set"; 
}

empty()

empty() 是另一个语言结构,用于检查变量是否为空。空的定义包括但不限于:

  • 已设置为 null

  • 布尔值 false

  • 整型数字 0(零)

  • 浮点型数字 0.0(零)

  • 空字符串 "" 或者 ''

  • 空数组 []

如果满足上述任何一个条件,empty() 就会返回 true;否则,返回 false

<?php 
$x = "";
 if (empty($x)) { 
echo "$x is empty"; 
} else { 
echo "$x is not empty"; 
}

is_null()

is_null() 是一个函数,用于检查变量是否为 NULL。只有当变量的值是 NULL 时,is_null() 才会返回 true;其他情况都返回 false。需要注意的是,未初始化的变量不能直接传递给 is_null() 函数。

<?php 
$x = null; 
if (is_null($x)) { 
echo "$x is null"; 
} else { 
echo "$x is not null"; 
}

注意事项

  • isset() 可以同时检查多个变量,但 empty()is_null() 不可以。

  • 当使用 isset() 对阵列中的键进行检查时,即使该键对应的值是 null,也会返回 true。所以如果你想要确保键不仅设置过而且值不为 null,可能需要结合 !is_null() 使用。

  • empty() 不适用于资源类型。如果试图检查一个资源类型的变量,将会导致警告。

  • 在 PHP 5.5 版本之前,访问未初始化的变量会产生 E_NOTICE 错误。为了避免这种情况,应该先使用 isset()empty() 进行检查。

总之,这三个关键字或函数在编程过程中都有各自的用途,理解并正确使用它们可以帮助我们编写出更健壮的代码。


评论