从嵌套对象访问父对象属性?

时间:2016-06-12 15:40:07

标签: php

假设我有两个嵌套在父类中的对象:

class A {

    public function create() {
        //... create something
    }
}

class B {

    public function getFooter() {
        // I need to access object A function create() here?
    }
}

class C {
    protected $oA;
    protected $oB;

    function __construct() {
        $this->oA = new A();
        $this->oB = new B();
    }
}

$oC = new C();
$oC->oB->getFooter();

B级是否可以通过C级到达A级?

修改

我忘了提到我动态调用了B类的函数,如下所示:{函数名称}(),因此无法控制函数中可用作参数的属性。

上下文

我需要将多个对象存储到容器类中,并且我有一个包含许多模板函数的类。出于性能原因,我只想创建此模板类的一个实例,并将其放入容器类而不是多个子类中。

1 个答案:

答案 0 :(得分:0)

是的,B类需要一个指向C类实例的指针(您可以在创建B时将其传递给构造函数)。然后,类C需要一个公开访问类A实例的方法。

在B:

$A = $this->C->getA();
$A->runsomemethod();

在C:

public function getA()
{
    return $this->A;
}