0

オブジェクトがインスタンス化されたオブジェクトを認識する方法はありますか?

何らかの理由で(理由を説明するには行き過ぎです)、次のようなことを達成したいと思います:

class outer{
    public $x ;

    function __CONSTRUCT(){
        $this->x = "hello world";
        $innerObject = $new inner();
    }

    function echo_x(){
        echo $this->x;
    }
}

class inner() {

    function echo_var_from_outer(){
        parent::echo_x();
        // the above won't work 
    }

}

$bar = new outer();
$bar->innerObject->echo_var_from_outer();

もちろん、外側のクラスの参照を内側のクラスに渡すこともできますが、それが必要ない場合は本当に役に立ちます。私はこの問題の回避策をたくさん知っていますが、それは私が探しているものではありません。注入されたオブジェクトが、それをインスタンス化したオブジェクトを暗黙的に認識しているかどうか教えてください。

4

1 に答える 1

0

innerクラスで次のことを行います

class inner extends outer {

    function echo_var_from_outer(){
        parent::echo_x();
        // the above won't work 
    }

}
于 2013-05-01T16:06:15.787 に答える