empty

empty

(PHP 4, PHP 5, PHP 7)

空 - 确定变量是否为空

描述

bool empty ( mixed $var )

确定一个变量是否被认为是空的。如果变量不存在或者其值等于,则该变量被认为是空的FALSE。如果变量不存在,empty()不会生成警告。

参数

var

变量被检查

注意:在PHP 5.5之前,empty()只支持变量; 其他任何东西都会导致解析错误。换句话说,以下内容不起作用:空(trim($ name))。相反,使用trim($ name)== false

如果变量不存在,则不会生成警告。这意味着empty()实质上就是!isset($ var)||的简洁等价物 $ var == false

返回值

返回FALSE如果var存在并且具有非空值,非零值。否则返回TRUE

以下事项被认为是空的:

  • “”(一个空字符串)

  • 00作为整数)

  • 0.0(0作为浮点数)

  • “0”(0作为一个字符串)

  • NULL

  • FALSE

  • 数组()(一个空数组)

  • $ var; (一个声明的变量,但没有值)

更新日志

描述
5.5.0empty()现在支持表达式,而不仅仅是变量。
5.4.0检查字符串的非数字偏移量返回TRUE。

例子

Example #1 A simple empty() / isset() comparison.

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

Example #2 empty() on String Offsets

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()重载方法。

← doubleval

floatval →