PHP 变量判断 empty 和 isset 的区别

编辑于:2021年12月21日

PHP 中 emptyisset 函数时怎么判断变量的?isset 和 empty 函数最终都执行了 zend_do_isset_or_isempty 函数,此外,实际上,empty 不是一个函数,而是一个语言结构,语言结构是在PHP程序运行前编译好的。

函数使用格式

empty

bool empty ( mixed $var )

判断变量是否为空。

isset

bool isset ( mixed $var [ , mixed $... ] )

判断变量是否被设置且不为NULL。

参数说明

对于empty,在 PHP5.5 版本以前,empty 只支持变量参数,其他类型的参数会导致解析错误,比如函数调用的结果不能作为参数。

对于isset,如果变量被如 unset 的函数设为 NULL,则函数会返回 false。如果多个参数被传递到 isset 函数,那么只有所有参数都被设置 isset 函数才会返回 true 。从左到右计算,一旦遇到没被设置的变量就停止。

运行示例

$result = empty(0); // true
$result = empty(null); // true
$result = empty(false); // true
$result = empty(array()); // true
$result = empty('0'); // true
$result = empty(1); // false
$result = empty(callback function); // 报错

$a = null;
$result = isset($a); // false;

$a = 1;
$result = isset($a); // true;
 
$a = 1;$b = 2;$c = 3;
$result = isset($a, $b, $c); // true

$a = 1;$b = null;$c = 3;
$result = isset($a, $b, $c); // false

专题:PHP 变量获取 empty 和 isset

相关推荐

PHP empty 和 isset 有什么区别

PHP empty 和 isset 有什么区别

empty:只要变量是否为 "" 或者 0 ,或者是 false 和 null ,都会返回 true ;isset:是判断变量是否存在,只要你这个变量 ...

PHP 中用大括号 {} 的作用

PHP 中用大括号 {} 的作用

在 PHP 中,大括号 {} 可以起到如下作用: 1、将多个独立语句合并为一个复合语句,例如 if ... else ... 中经常如此使用 2 ...