PHP:数组到变量函数参数值

Byr*_*yrl 14 php arrays function params

我有一个可变长度数组,我需要将其转换为函数的参数列表.

我希望有一个巧妙的方法 - 但我看不出如何.

我正在编写的代码将调用类中的方法 - 但我不知道方法的名称,也不知道它有多少参数.

我试过这个 - 但它不起作用:

$params = array(1 => "test", 2 => "test2", 3 => "test3");
ClassName::$func_name(implode($params, ","));
Run Code Online (Sandbox Code Playgroud)

以上将所有值都归为函数的第一个参数.而它应该使用3个参数值(test,test2,test3)调用该函数.

我需要的是这个:

ClassName::$func_name("test", "test2", "test3");
Run Code Online (Sandbox Code Playgroud)

任何想法如何做到这一点整洁?

cle*_*tus 27

是的,使用call_user_func_array():

call_user_func_array('function_name', $parameters_array);
Run Code Online (Sandbox Code Playgroud)

您也可以使用它来调用类中的方法:

class A {
  public function doStuff($a, $b) {
    echo "[$a,$b]\n";
  }
}

$a = new A;
call_user_func_array(array($a, 'doStuff'), array(23, 34));
Run Code Online (Sandbox Code Playgroud)