empty 检查一个变量是否为空

发表日期:2021-07-01 08:57:21 | 来源: | | 浏览(1095) 分类:变量处理 函数

empty

(PHP 4, PHP 5, PHP 7, PHP 8)

empty检查一个变量是否为空

说明

empty(mixed $var): bool

判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于false,那么它会被认为不存在。如果变量不存在的话,empty()并不会产生警告。

参数

var

待检查的变量

注意:

在 PHP 5.5 之前,empty() 仅支持变量;任何其他东西将会导致一个解析错误。换言之,下列代码不会生效: empty(trim($name))。 作为替代,应该使用trim($name) == false.

没有警告会产生,哪怕变量并不存在。 这意味着 empty() 本质上与 !isset($var) || $var == false 等价。

返回值

var存在,并且是一个非空非零的值时返回 false 否则返回 true.

以下的东西被认为是空的:

  • "" (空字符串)
  • 0 (作为整数的0)
  • 0.0 (作为浮点数的0)
  • "0" (作为字符串的0)
  • null
  • false
  • array() (一个空数组)
  • $var; (一个声明了,但是没有值的变量)

更新日志

版本 说明
5.5.0

empty() 现在支持表达式了,而不仅仅是变量。

5.4.0

检查非数字的字符串偏移量会返回 true.

范例

示例 #1 一个简单的 empty()isset() 的比较。

<?php 
$var = 0;
// Evaluates to true because $var is emptyif (empty($var)) {
    echo '$var is either 0, empty, or not set at all';
}
// Evaluates as true because $var is setif (isset($var)) {
    echo '$var is set even though it is empty';
}
?>

示例 #2 在字符串偏移量上使用empty()

PHP 5.4 修改了当传入的是字符串偏移量时, empty() 的行为

<?php 
$expected_array_got_string = 'somestring';
var_dump(empty($expected_array_got_string['some_key']));
var_dump(empty($expected_array_got_string[0]));
var_dump(empty($expected_array_got_string['0']));
var_dump(empty($expected_array_got_string[0.5]));
var_dump(empty($expected_array_got_string['0.5']));
var_dump(empty($expected_array_got_string['0 Mostel']));
?>

以上例程在 PHP 5.3 中的输出:

bool(false)
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)

以上例程在 PHP 5.4 中的输出:

bool(true)
bool(false)
bool(false)
bool(false)
bool(true)
bool(true)

注释

注意: 因为是一个语言构造器而不是一个函数,不能被 可变函数 调用。

注意:

当对一个不可见的对象属性使用 empty() 时, __isset() 方法如果存在的话,它将会被调用。

参见

集速网 copyRight © 2015-2022 宁ICP备15000399号-1 宁公网安备 64010402001209号
与其临渊羡鱼,不如退而结网
欢迎转载、分享、引用、推荐、收藏。