在php中解压缩参数数组
-
08-07-2019 - |
题
Python提供<!> quot; * <!> quot;用于解压缩元组列表并将它们作为参数提供给函数的运算符,如下所示:
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);
使用你的例子。
其他提示
在php5.6
< =>运算符已添加。使用它,您可以摆脱...
这个更简单的替代方案。例如,有一个功能
function add($a, $b){
return $a + $b;
}
和你的数组call_user_func_array()
(在php5.5之后,你可以用这种方式声明数组)。
您可以使用$list = [4, 6];
:
echo add(...$list);
您应该使用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
在某些情况下,您可能会考虑使用unpacking
,这在PHP中是可能的,与python类似:
list($min, $max) = [3, 6];
range($min, $max);
这就是我至少得出这个答案的方式。
谷歌搜索:PHP argument unpacking
不隶属于 StackOverflow