PHP:如何将数组作为函数参数展开

PHP:如何将数组作为函数参数展开,php,static-methods,Php,Static Methods,我试图使用\uu callStatic来包装对类中不同静态函数的调用 此代码的当前版本允许我使用具有0或1参数的函数执行此操作: 类测试{ 公共静态函数\uuu callStatic($name,$args){ if(方法\存在(\类\名称)){ echo“它确实存在\n”; 返回前向\u静态\u调用([\u类\u,$name],$args[0]); }否则{ 回显“它不存在\n”; } } 私有静态函数mfunc($param1,$param2){ echo“那是我的职责\n”; 回显“$pa

我试图使用
\uu callStatic
来包装对类中不同静态函数的调用

此代码的当前版本允许我使用具有0或1参数的函数执行此操作:

类测试{
公共静态函数\uuu callStatic($name,$args){
if(方法\存在(\类\名称)){
echo“它确实存在\n”;
返回前向\u静态\u调用([\u类\u,$name],$args[0]);
}否则{
回显“它不存在\n”;
}
}
私有静态函数mfunc($param1,$param2){
echo“那是我的职责\n”;
回显“$param1\n”;
回显“$param2\n”;
}
}
测试::notafunc(“一”,“二”);
测试:mfunc(“一”、“二”);
但是,对于
mfunc
,它将失败,因为它有两个参数。 调用函数时,如何分散不同的参数

我不能使用新的,因为我锁定在PHP7.2上。
我也不能修改
mfunc
,因为我在项目中有太多的方法要更改。

spread操作符在PHP7.2中仍然可用,您所指的是稍微不同的东西(它是关于能够将其用作数组的一部分)。所以你可以用

return forward_static_call([__CLASS__, $name], ...$args);
作为一个更清晰的版本

return static::{$name}(...$args);

老办法是
call\u user\u func\u array()
谢谢,这正是我想做的