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 →
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com