PHP empty误区:
之前在看empty使用方法时,看到对empty()方法的用法解释为:若变量存在且其值为""、0、"0"、NULL、、FALSE、 array()、$var; 以及没有任何属性的对象,则返回 TURE。
然而,经过试验我发现:
当empty(空对象)时,返回的并不是true,而是false
example 0:
$obj = null;
$obj = null;
if(empty( ((object)$obj) ) ){
echo 1;
}else{echo 2;}//此处将会输出2
example 1:
class foo{
}
$obj = new foo();
if(empty($obj)){
echo 1;
}else{echo 2;}//此处也输出2
其实翻看PHP官方手册对empty()的解释为:
以下的东西被认为是空的:
"" (空字符串)
0 (作为整数的0)
0.0 (作为浮点数的0)
"0" (作为字符串的0)
NULL
FALSE
array() (一个空数组)
$var; (一个声明了,但是没有值的变量)
地址:http://php.net/manual/zh/function.empty.php
并没有对对象的解释。
网友评论