来自父的构造函数的call_user_func(array($ this,$ method),$ par)?

时间:2010-10-15 05:23:40

标签: php oop

class Parent
{

  public function __construct($method) {
    call_user_func(array($this, $method), 1);
  }

}

class Child extends Parent
{

  public function __construct($method) {
    parent::__construct($method);
  }

  protected function call_me_on_construct($par) { 
    echo $par;
  }

}

创建$child = new Child("call_me_on_construct");的实例 我希望调用call_me_on_construct方法。问题是Parent的构造函数对$this一无所知。有什么更好的方法呢?

谢谢。

1 个答案:

答案 0 :(得分:2)

它知道$this。代码中唯一的错误是您使用保留关键字parent

class Ancestor
{

  public function __construct($method) {
    call_user_func(array($this, $method), 1);
  }

}

class Child extends Ancestor
{

  public function __construct($method) {
    parent::__construct($method);
  }

  protected function call_me_on_construct($par) { 
    echo $par;
  }

}

$c = new child("call_me_on_construct");