下面这两个的区别:???
$arr=array();
if($arr){}或者
$arr=array();
$get = empty($arr)? 0: 1;
if($get){}

解决方案 »

  1.   

    $array = array();
    $x = empty($array);
    echo $x; //true说出empty()、isset()的用法的区别
    isset()判断变量是否已声明(但当$var = null的时候isset($var)返回false)
    empty()判断变量是否为空,其形参只能是变量,不能是函数的返回值等
    如果一个变量从没有声明过,那么isset==false | empty==true
    如果一个变量已声明,但赋值为NULL,那么和前一种情况一样
    如果一个变量已声明,但赋值为'',那么isset==true | empty==true
    如果一个变量已声明,且正常赋值,那么isset==true | empty==false
      

  2.   


    我重点是想知道if()括号里面的判断两个的不同第一个$arr为空数组,被php理解为false,所以if条件不成立
    第二个$get = empty($arr)? 0: 1;   $arr为空数组,被empty判断后返回true,所以$get会取0,
    因为$get = 0,所以if条件也不成立
      

  3.   

    没有本质的不同,都是 $arr 不为空时条件成立
      

  4.   

    没啥,把php原理搞懂了就好了
    http://php.net/manual/zh/types.comparisons.php