假设我有函数:
<?php
function myFunction($param1, $param2, /*0 or more extra args*/) {
// do something with $param1 & $param2
$args = func_get_args();
$other_args = array_slice($args, 2); // get the dynamic args
// do something with $other_args
}
?>
这样可以调用:
<?php
myFunction($param1, $param2); // or
myFunction($param1, $param2, $param3); // or
myFunction($param1, $param2, $param3, $param4);
?>
但我想知道是否可以获取一个args数组并将其传递到函数中,例如:
<?php
$extra_args = array($param3, $param4); // this could also be
$extra_args = array($param3, $param4, $param5); // or any length array
?>
我想把它们作为单独的参数传递到我的函数中,例如
<?php
myFunction($param1, $param2 /* other args split up */);
?>
提前感谢!
Yeap-call_user_func_array()
'。
http://www.php.net/manual/en/function.call-user-func-array.php
接受两个参数-函数名(作为字符串-或者,在PHP>=5.3中,可能是一个匿名函数,不确定)和一个params数组。
或者对于方法,forward_static_call_array()
http://www.php.net/manual/en/function.forward-static-call-array.php
PHP对JS的function.prototype.apply()
的回答:)
call_user_func_array('myFunction',
array_merge(
array($param1,$param2),
$extra_args));