PHP 中 empty
和 isset
函数时怎么判断变量的?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