首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

empty

(PHP 4, PHP 5, PHP 7)

空 - 确定变量是否为空

描述

代码语言:javascript
复制
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.

代码语言:javascript
复制
<?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()的行为方式。

代码语言:javascript
复制
<?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中输出上面的例子:

代码语言:javascript
复制
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)

在PHP 5.4中输出上面的例子:

代码语言:javascript
复制
bool(true)
bool(false)
bool(false)
bool(false)
bool(true)
bool(true)

注释

注意:因为这是一种语言结构而不是函数,所以不能使用变量函数来调用它。

注意:在不可访问的对象属性上使用empty()时,如果声明,将调用__isset()重载方法。

← doubleval

floatval →

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com