将数组作为参数列表传递给函数

时间:2014-02-25 22:46:08

标签: php arrays args

谷歌不会帮助我;我想将一个数组作为参数列表传递给函数。

我无法编辑函数本身,因此无法传递数组。 它期望这样:

function doSomething($arg1, $arg2, [$arg3...]) {
    //code...
}

我有这个:

$args = array('arg1', 'arg2', 'arg3'...);

我怎么能通过它们?

1 个答案:

答案 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);