PHP 变量判断 empty 和 isset 的区别

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:是判断变量是否存在,只要你这个变量不是 null 或未赋值,返回结果都是 true ;而 is_null :正好 isset 的反结果。 echo !isset($_GET['a']); //如果得不到变量a的值 echo empty($_GET['a']); //如果变量a的值是空 1、empty 判断一个变 ...

PHP 获取 IP 地址形式的完整 URL 页面网址

PHP 获取 IP 地址形式的完整 URL 页面网址

PHP 获取包含端口号的完整 URL 中,$_SERVER 有些写法只能获取域名形式的 URL ,采用 IP 地址的 URL 是获取不到的。 #包含端口号的完整url echo 'http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; #http://localhost:80/blog/testurl.php?id=5 #这个代码是有一定局限性的,他只能获 ...

PHP 中用大括号 {} 的作用

PHP 中用大括号 {} 的作用

在 PHP 中,大括号 {} 可以起到如下作用: 1、将多个独立语句合并为一个复合语句,例如 if ... else ... 中经常如此使用 2、在变量间接引用中进行定界,避免歧义。例如 ${$my_var[8]} 与 ${$my_var}[8] 的区分 3、用于指示字符串变量中的单个字符(下标从0开始),例如 $my_str="1234"; $my_str{1}='5'; //现在 $my_str 内 ...

微信扫一扫,分享到朋友圈

PHP 变量判断 empty 和 isset 的区别