php - 这些是反向引用的循环引用吗
问题描述
我试图了解我的范围/提供从一个类到另一个类的访问权限的方法是否正确。
我担心我的方法是创建循环引用。
随着类数量的增加,var_dump 输出的数据量也会增加,从而导致溢出。但是,它可能var_dump
没有正确处理创建的指针/引用?
那么这段代码会创建循环引用还是因为需要更好的词,反向引用?这种方法可以接受吗?
我担心对这篇文章中概述的警告的循环引用,尤其是这一点:
循环类引用创建高耦合;每次更改任何一个类时都必须重新编译这两个类
<?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
?>
解决方案
推荐阅读
- java - 试图比较两个整数
- javascript - 为什么我不能向 div 添加事件侦听器?
- javascript - axios覆盖,从数据响应中获取状态码而不是状态
- angular - 基于交叉字段的角度日期验证
- amazon-web-services - 从 http://169.254.170.2/$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI 获得 404
- regex - 如何匹配 CR CR LF 换行符模式
- python - 当我让 2 只海龟相撞时,Python 冻结并崩溃
- c# - Outlook 获取 FreeBusy 信息很慢
- javascript - ReactJS 和 setState 语法
- c# - 使用此端点的数据