如何将参数数组传递给方法


How to pass array of arguments to an method

我正在尝试将数组传递给一个方法,我希望该方法使用数组的值作为参数。

我在如何将数组分配给函数参数?线程,但我实际上正在研究这里的类方法。

if (method_exists($testInstance, $method)){
  $a=array {'1'=>'aru1', '2'=>'arg2'}   //could have more than 2. it's dynamic
  call_user_func_array($testInstance->$method(), $a);  //this won't work.
}

有什么想法吗?多谢!

正如 Felix 建议的那样,您需要传递一个可调用对象。对于具有对象不协调(如果是静态方法,则为类名)和方法名称的array类方法:

call_user_func_array(array($obj,'myMethod'), $args)