在PHP中使用数组作为参数列表

时间:2017-11-27 21:48:21

标签: php arrays

是否存在与python func(*[array])功能等效的PHP,以将该数组用作函数的一系列参数?我似乎无法在网上找到一个。

Python中的用法示例:

def f(a,b):
    print(a, b)

f('abc', 'def')
f(*['abc', 'def'])

输出

abc def
abc def

提前感谢您的帮助。

编辑:这与this不同,因为该问题想要使用数组作为参数,而我想将数组用作一系列参数。

2 个答案:

答案 0 :(得分:4)

" ..."是Argument unpacking,可以在函数定义或调用中使用

<?php
function add($a, $b) {
    return $a + $b;
}

echo add(...[1, 2])."\n";

$a = [1, 2];
echo add(...$a);

给定...array()作为函数参数,将调用中的(剩余)参数收集到数组变量中:

<?php
function sum(...$numbers) {
    $acc = 0;
    foreach ($numbers as $n) {
        $acc += $n;
    }
    return $acc;
}

echo sum(1, 2, 3, 4);

答案 1 :(得分:2)

在PHP&lt; 5.6即call_user_func_array('f', ['abc', 'def']);

在5.6+中,您可以改为f(...['abc', 'def']);