我正在构建一个模板系统,我正在遇到一个动态调用函数的问题.
当我尝试以下内容时:
$args = array(
4,
'test' => 'hello',
'hi'
);
Run Code Online (Sandbox Code Playgroud)
你知道..一些数字元素一些关联元素,
call_user_func_array($function, $args);
Run Code Online (Sandbox Code Playgroud)
将数组转换为如下所示:
$args = array(
4,
'hello',
'hi'
);
Run Code Online (Sandbox Code Playgroud)
除了传递这样的数组之外,还有什么方法可以解决这个问题:
$args = array(
4,
array('test' => 'hello'),
'hi'
);
Run Code Online (Sandbox Code Playgroud)
谢谢!马特
Tom*_*igh 15
阵列键无处可去,因为:
call_user_func_array($function, $args);
Run Code Online (Sandbox Code Playgroud)
相当于:
$function(4, 'hello', 'hi');
Run Code Online (Sandbox Code Playgroud)
你可以call_user_func()改用:
call_user_func($function, $args);
Run Code Online (Sandbox Code Playgroud)
然后给出一个带有一个参数的函数,你可以获得关联数组:
function func($args) {
// $args is complete associative array
}
Run Code Online (Sandbox Code Playgroud)
请注意,call_user_func()也可以使用多个参数 - 每个参数都将作为参数传递给被调用函数.