$a = array();
var_dump(! $a); //true
var_dump(! empty($a)); //false

解决方案 »

  1.   

    手册中对empty()的解释如下:
    描述bool empty( mixed var )
    如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。而
    $a = array();
    $a沒有值,當有值時為true,0或沒值為false;
    因此$a在條件判斷鐘為false;因此
    !$a 為 true,理解為判斷$a是否為空
    !(empty($a)) 為 false, 理解為判斷$a是否非空