请看一个PHP程序:
<?php   $b=array();
     $c = (object)$b;       //PHP的类型转换
     var_dump($c);    if($c)//对象$c不为空时
   {
      // dosth1;
    echo '--------1---------';
   }
   else{//为空时
      //dosh2;
        echo '--------2---------';
    }
?>这个PHP执行结果:
object(stdClass)#1 (0) {}
--------1---------即我想这样:如果对象$c为空的时候,执行dosth1,不为空时,执行dosth2.
现在我输入var_dump($c)时为:object(stdClass)#1 (0) {}即对象是为空的呀,为何if($c)的条件为真?

解决方案 »

  1.   


    <?php
      $b=array();
      $c=(object)$b;
          var_dump($c);   if($c){ //对象$c不为空时
          //dosth1
      echo '-----1----------';
      }
      else{//对象$c为空时
      //dosth2
      echo '------2--------';
      }
        
          
    ?>
      

  2.   

        if(!empty($c)){   //对象$c不为空时 
                //dosth1 
        echo   '-----1----------'; 
        } 
        else{//对象$c为空时 
        //dosth2 
        echo   '------2--------'; 
        }
    接分
      

  3.   

    ChangeLog
    Version Description 
    As of PHP 5, objects with no properties are no longer considered empty. 也就是说PHP5中即使一个对象没有成员变量或成员函数,也不会被判为空。
      

  4.   

    $c是一个对象,不是NULL!!!!!"空"和"NULL"是两回事