我有两个班级
class one {
public function __construct() {
//I need $this to be instance of child class
$child_this = $this;
}
}
class two extends one {
public function __construct() {
parent::__construct();
}
}
我需要在父构造函数中访问子$ this而不将子实例作为参数传递,谢谢
答案 0 :(得分:0)
这是一个非常糟糕的主意。您将您的孩子与您的父母联系起来(因为它是它的孩子),并且还将您的父母(实际上应该对其子女一无所知)与其子女的实现(即循环依赖)联系起来。不,它不会以任何语言开箱即用。实现这一目标的唯一方法是将孩子的实例传递给父母的构造函数(黑魔法,不要这样做)。通过这样做,你也会打破liskov substitution,因为你的孩子的签名小于其父母的签名。
我可以想到的唯一合理的方法是,您可能想要从父母中访问您孩子的上下文,就是获取它的类名。您可以使用get_class()功能来实现此目的。