我无法编辑函数本身,因此无法传递数组。 它期望这样:
function doSomething($arg1, $arg2, [$arg3...]) {
//code...
}
我有这个:
$args = array('arg1', 'arg2', 'arg3'...);
我怎么能通过它们?
答案 0 :(得分:1)
您可以使用call_user_func_array
。
使用类似:
$array = array(1, 2, 3);
call_user_func_array("myfunc", $array);
function myfunc($a, $b, $c) {
var_dump($a, $b, $c); // 1 2 3
}
$array = array(2, 3);
$first = 1;
call_user_func_array("myfunc", array_merge(arary($first), $array));
function myfunc($a, $b, $c) {
var_dump($a, $b, $c); // 1 2 3
}
如果是对象实例,您的回调应如下所示:
array($obj, "someFunc")
这样:
call_user_func_array(array($obj, "someFunc"), $array);