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
。
以下事项被认为是空的:
“”
(一个空字符串)
0
(0
作为整数)
0.0
(0作为浮点数)
“0”
(0作为一个字符串)
NULL
FALSE
数组()
(一个空数组)
$ var;
(一个声明的变量,但没有值)
更新日志
版 | 描述 |
---|---|
5.5.0 | empty()现在支持表达式,而不仅仅是变量。 |
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 →