call_user_func(array($this, $method), $par) 来自父的构造函数? [英] call_user_func(array($this, $method), $par) from parent's constructor?

查看:55
本文介绍了call_user_func(array($this, $method), $par) 来自父的构造函数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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 一无所知.什么是更好的方法?

Creating instance of $child = new Child("call_me_on_construct"); I want call_me_on_construct method to be called. The problem is Parent's constructor know nothing about $this. What is better way to do it?

谢谢.

推荐答案

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

It knows about $this. The only error in your code is that you use reserved keyword 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");

这篇关于call_user_func(array($this, $method), $par) 来自父的构造函数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆