0

好的,这很奇怪,我知道这一点,但我想知道这是否可能。

目标是使类的成员对象用另一个对象替换自己。

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;
}

将是最简单的方法,但我想每次都避免这个参考通过......我也不会问你我是否正在寻找简单的方法;)

欢迎使用任何技巧。

谢谢各位专家。

4

0 回答 0