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)