代码之家  ›  专栏  ›  技术社区  ›  Kirzilla

是否从父级的构造函数调用用户func(数组($this,$method),$par)?

  •  2
  • Kirzilla  · 技术社区  · 14 年前
    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 要调用的方法。问题是父级的构造函数对 $this . 最好的方法是什么?

    谢谢您。

    1 回复  |  直到 14 年前
        1
  •  2
  •   zerkms    14 年前

    它知道 $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");