Php 根据数组中的对象/字符串填充函数构造函数

Php 根据数组中的对象/字符串填充函数构造函数,php,Php,我有一个数组,其中包含我想在函数中使用的字符串/对象 $args = ['hello', $object]; 现在我使用call_user_func从第二个类执行静态函数 call_user_func([Handler::class, 'func']); 此代码引发错误,因为函数“func”在其构造函数中需要2个参数,但它是空的 所以我想让它看起来像这样 call_user_func([Handler::class, 'func'], 'hello', $object); 数组$args可

我有一个数组,其中包含我想在函数中使用的字符串/对象

$args = ['hello', $object];
现在我使用call_user_func从第二个类执行静态函数

call_user_func([Handler::class, 'func']);
此代码引发错误,因为函数“func”在其构造函数中需要2个参数,但它是空的 所以我想让它看起来像这样

call_user_func([Handler::class, 'func'], 'hello', $object);

数组$args可以包含不同数量的字符串/对象。

您应该使用的函数是
call\u user\u func\u Array()

混合调用用户函数数组(可调用$callback,数组$param\u arr) 使用param_arr中的参数调用第一个参数给出的回调

因此,在你的情况下:

call_user_func_array([Handler::class, 'func'], ['hello', $object]);
其中,
hello
是第一个参数,
$object
是第二个参数

这样做的好处是,
$param_arr
的长度可以是可变的,其中,
call_user_func
中的参数必须逐个输入,因此它们是固定长度的。这正是您想要的
Array$args可以包含不同数量的字符串/对象。


因此,只要用
$args
数组替换
$param\u arr
,您就可以全部设置好了。

您应该使用的函数是
调用用户函数数组()

混合调用用户函数数组(可调用$callback,数组$param\u arr) 使用param_arr中的参数调用第一个参数给出的回调

因此,在你的情况下:

call_user_func_array([Handler::class, 'func'], ['hello', $object]);
其中,
hello
是第一个参数,
$object
是第二个参数

这样做的好处是,
$param_arr
的长度可以是可变的,其中,
call_user_func
中的参数必须逐个输入,因此它们是固定长度的。这正是您想要的
Array$args可以包含不同数量的字符串/对象。


因此,只要用
$args
数组替换
$param\u arr
就可以了。

试试
调用用户函数数组
试试
调用用户函数数组