2008-11-16 54 views
23

Python提供有“*”算子拆包元组的列表,并将其赋予给函数作为参数,如下所示:拆包参数数组在PHP

args = [3, 6] 
range(*args)   # call with arguments unpacked from a list 

这相当于:

range(3, 6) 

有谁知道是否有办法在PHP中实现这一点?一些谷歌搜索“PHP解压缩”的变体没有立即发现任何东西..也许它在PHP中被称为不同的东西?

回答

13

php5.6... operator已添加。使用它,你可以摆脱call_user_func_array()这个更简单的选择。例如具有如下功能

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

和您的阵列$list = [4, 6];(php5.5后,你可以宣布这样的阵列)。 你可以打电话给你的函数...

echo add(...$list);

+0

如果数组有String键,则不起作用;) – BusyAnt 2017-12-04 13:04:13

0

在某些情况下,你可能会考虑使用unpacking,这是有可能在PHP,是一个类似的方式蟒蛇:

list($min, $max) = [3, 6]; 
range($min, $max); 

这是至少我是如何到达这个答案的。 Google搜索:PHP argument unpacking