2013-05-01 64 views
0

有没有一种方法让对象知道实例化对象?php oop从注入对象中引用“父”对象

出于某种原因(它真的走得太远解释为什么),我想实现这样的:

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(); 

当然,我可以通过一个参考的外部类的内部类,但如果没有必要的话,它确实会帮助我。我知道很多解决这个问题的方法,但这不是我要找的。请告诉我,注入的对象是否具有对实例化对象的任何隐式意识。

+0

那么你是不是保存变量'innerObject'这是一个问题。 – thatidiotguy 2013-05-01 16:07:26

回答

0

在你inner类执行以下操作

class inner extends outer { 

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

} 
+0

扩展外部类将改变游戏规则,如果内部类已经扩展了另一个类,则可能不可能。这就是对象组合的用途。 – Sven 2013-05-01 16:15:41