Python提供有“*”算子拆包元组的列表,并将其赋予给函数作为参数,如下所示:拆包参数数组在PHP
args = [3, 6]
range(*args) # call with arguments unpacked from a list
这相当于:
range(3, 6)
有谁知道是否有办法在PHP中实现这一点?一些谷歌搜索“PHP解压缩”的变体没有立即发现任何东西..也许它在PHP中被称为不同的东西?
Python提供有“*”算子拆包元组的列表,并将其赋予给函数作为参数,如下所示:拆包参数数组在PHP
args = [3, 6]
range(*args) # call with arguments unpacked from a list
这相当于:
range(3, 6)
有谁知道是否有办法在PHP中实现这一点?一些谷歌搜索“PHP解压缩”的变体没有立即发现任何东西..也许它在PHP中被称为不同的东西?
您可以使用call_user_func_array()
以实现:
call_user_func_array("range", $args);
使用你的榜样。
您应该使用call_user_func_array
call_user_func_array(array(CLASS, METHOD), array(arg1, arg2, ....))
http://www.php.net/call_user_func_array
或使用反射API http://www.php.net/oop5.reflection
在php5.6
的...
operator已添加。使用它,你可以摆脱call_user_func_array()
这个更简单的选择。例如具有如下功能
function add($a, $b){
return $a + $b;
}
和您的阵列$list = [4, 6];
(php5.5后,你可以宣布这样的阵列)。 你可以打电话给你的函数...
:
echo add(...$list);
在某些情况下,你可能会考虑使用unpacking
,这是有可能在PHP,是一个类似的方式蟒蛇:
list($min, $max) = [3, 6];
range($min, $max);
这是至少我是如何到达这个答案的。 Google搜索:PHP argument unpacking
如果数组有String键,则不起作用;) – BusyAnt 2017-12-04 13:04:13