PHP:调用动态函数,但是在一个类中?

Tim*_* N. 4 php oop class

我正在尝试创建一个初始化函数,它将调用类中的多个函数,最终结果的一个简单示例如下:

$foo = new bar;
$foo->call('funca, do_taxes, initb');
Run Code Online (Sandbox Code Playgroud)

这通常会使用call_user_func函数正常工作,但我真正想做的就是在类中执行此操作,我不知道如何执行此操作,我的非工作代码的快速示例如下:

class bar {
   public function call($funcs) {
       $funcarray = explode(', ', $funcs);
       foreach($funcarray as $func) {
          call_user_func("$this->$func"); //???
       }
   }
   private function do_taxes() {
       //...
   }
}
Run Code Online (Sandbox Code Playgroud)

我如何调用动态类函数?

Mar*_*iot 7

您需要使用数组,如手册中的示例#4:

call_user_func(array($this, $func));
Run Code Online (Sandbox Code Playgroud)


Amb*_*ber 5

它实际上比你想象的要简单得多,因为PHP允许变量变量(以及变量对象成员名称):

foreach($funcarray as $func) {
    $this->$func();
}
Run Code Online (Sandbox Code Playgroud)