从parent :: __ construct访问child $ this

时间:2015-04-26 20:17:54

标签: php

我有两个班级

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而不将子实例作为参数传递,谢谢

1 个答案:

答案 0 :(得分:0)

这是一个非常糟糕的主意。您将您的孩子与您的父母联系起来(因为它是它的孩子),并且还将您的父母(实际上应该对其子女一无所知)与其子女的实现(即循环依赖)联系起来。不,它不会以任何语言开箱即用。实现这一目标的唯一方法是将孩子的实例传递给父母的构造函数(黑魔法,不要这样做)。通过这样做,你也会打破liskov substitution,因为你的孩子的签名小于其父母的签名。

我可以想到的唯一合理的方法是,您可能想要从父母中访问您孩子的上下文,就是获取它的类名。您可以使用get_class()功能来实现此目的。