empty()函数
empty()是用来测试变量是否已经配置。若变量已存在、非空字符串或者非零,则返回 false 值;反之返回 true值。所以,当字符串的值为0时,也返回true,就是执行empty内部的语句。这就是陷阱。
总之:
-
变量存在且其值是”“、0、”0”、NULL、FALSE、 array()、var $var; 以及没有任何属性的对象,则返回 TURE
-
若变量存在且值不为”“、0、”0”、NULL、FALSE、 array()、var $var; 以及没有任何属性的对象,则返回 FALSE
一道面试题
$a1 = null;
$a2 = false;
$a3 = 0;
$a4 = '';
$a5 = '0';
$a6 = 'null';
$a7 = array();
$a8 = array(array());
echo empty($a1) ? 'true' : 'false'; //输出true
echo empty($a2) ? 'true' : 'false'; //输出true
echo empty($a3) ? 'true' : 'false'; //输出true
echo empty($a4) ? 'true' : 'false'; //输出true
echo empty($a5) ? 'true' : 'false'; //输出true
echo empty($a6) ? 'true' : 'false'; //输出false
echo empty($a7) ? 'true' : 'false'; //输出true
echo empty($a8) ? 'true' : 'false'; //输出false
输出依次是: true true true true true false true false