这些回引用是循环引用吗

时间:2019-12-05 14:01:43

标签: php circular-reference

我试图了解我确定范围/提供从一类到另一类的访问的方法是否正确。

我担心我的方法是创建循环引用。

随着类数量的增加,var_dump输出的数据数量也随之增加,从而导致溢出。但是,可能是var_dump不能正确处理创建的指针/引用吗?

那么此代码将创建循环引用,还是需要一个更好的词反向引用?这种方法可以接受吗?

我担心this post中概述的注意事项的循环引用,尤其是要点:

  

循环类引用产生高耦合;两个类都必须   每次更改其中任何一个时重新编译

<?php 

class HomeController{

    public $AppleController     = null;
    public $OrangeController    = null;

    public function __construct(){
    }

    public function &InitAppleController(){
        if(!$this->AppleController){
            $this->AppleController = new AppleController($this); 
        }
        return $this->AppleController;
    }

    public function &InitOrangeController(){
        if(!$this->OrangeController){
            $this->OrangeController = new OrangeController($this); 
        }
        return $this->OrangeController;
    }
}


class BaseController{

    protected $HC;

    protected function __construct(&$HC){
        $this->HC = &$HC;
    }
}

class AppleController extends BaseController{

    public function __construct(&$HC){
        parent::__construct($oHC);
    }
}

class OrangeController extends BaseController{

    public function __construct(&$HC){
        parent::__construct($oHC);
    }
}



$oHC = new HomeController();
$oAppleController = &$oHC->InitAppleHandler();
$oOrangeController = &$oHC->InitOrangeController();

// now methods in OrangeController can access methods in AppleController without 
// having reference passed directly to the method that needs the scope
?>

0 个答案:

没有答案