日期:2014-05-17  浏览次数:20588 次

如何在类的构造函数中终止类的运行
比如一个class


class   car   {

      public   $name;


    function   __construct()   {
        if   ($name= 'end ')
        //这里要设置终止类的执行

    }

    function   showname()   {
          echo   'name   is   '.$this-> name;
    }

}


然后

    $aaa=   new   car();

$aaa-> name= 'test1 ';
$aaa-> showname();   //打印   name   is   test1


$bbb=new   car();
$bbb-> name= 'end ';
$bbb-> showname();     //应该不显示任何内容

请问有没有类似循环中break这样的语句可以打断类的执行,但是在构造函数中位于该语句之前的语句还是能正常执行。

------解决方案--------------------
PHP code


class car  {
    public   $name;
    function   __construct()   {
    }

    public function   showname()   {
        echo   'name   is   '.$this-> name;
    }
    public function setname($name){
        $this->name=$name;
        if ($this->name=='end'){
            exit();
        }
    }

}

$aaa=new car();
$aaa->setname('test1');
$aaa-> showname();


$bbb=new  car();
$bbb->setname('end');
$bbb-> showname();

------解决方案--------------------
想了一下 你是要停止 而不是终止整个运行
PHP code


class car  {
    public   $name;
    protected $goon;
    function   __construct()   {
        $this->goon=true;
    }

    public function   showname()   {
        if ($this->goon==true){
            echo   'name   is   '.$this-> name;
        }
    }
    public function setname($name){
        $this->name=$name;
        if ($this->name=='end'){
            $this->goon=false;
        }
    }

}

$aaa=new car();
$aaa->setname('test1');
$aaa-> showname();


$bbb=new  car();
$bbb->setname('end');
$bbb-> showname();

$bbb=new  car();
$bbb->setname('ttt');
$bbb-> showname();