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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top