【发布时间】:2015-10-15 08:08:16
【问题描述】:
我有一个扩展了 B 类的 A 类
class A extends B{
function home(){
$site = new SitesController($this);
return $site->home();
}
}
我希望此类中的每个变量都可以在 SitesController 类中使用。但我不想从 A 扩展 SitesController,因为每次调用它都会重新初始化所有内容,并且会有很多重复的查询调用。 所以我试图在创建类时传递 $this 。但是我不能像这样在 SitesController 中重新初始化 $this。
class SitesController implements SiteInterface
{
function __construct($data) {
$this = $data;
}
}
无论如何我可以完成这项工作吗? 谢谢。
【问题讨论】:
-
你到底是什么意思:一切都会重新初始化,会有很多重复的查询调用
-
@Daan 在父类B的构造函数中,我有很多数据库查询调用。在 A 类的构造函数中,我调用了 parent::__construct();如果我从类 A 扩展 SitesController,我必须在其构造函数中做同样的事情。查询将在 Class B 的构造函数中调用一次,然后在 SitesControllers 构造函数中调用一次。不是这样吗?不过我不确定。
-
是的,没错,从你初始化父类的代码中看不到,这就是我问的原因。
标签: php class oop laravel object