好的,这很奇怪,我知道这一点,但我想知道这是否可能。
目标是使类的成员对象用另一个对象替换自己。
class A
{
public $object;
public function __construct()
{
$this->object = new B($this); // added reference to A
}
}
class B
{
private $caller; // reference to A
private $myobject;
public function __construct($caller)
{
$this->myobject = new C();
$this->caller = $caller;
}
public function replace()
{
// here goes the topic code...
}
}
class C
{
// whatever...
}
$A = new A();
$A->object->replace();
// after calling the "replace" method, $A->object becomes the B's child C instance
我知道做类似的事情
$A->object->replace($A);
在B级
public function replace($class)
{
$class->object=$this->myobject;
}
将是最简单的方法,但我想每次都避免这个参考通过......我也不会问你我是否正在寻找简单的方法;)
欢迎使用任何技巧。
谢谢各位专家。