在php中解压参数数组

在php中解压参数数组,php,python,arguments,iterable-unpacking,Php,Python,Arguments,Iterable Unpacking,Python提供了“*”运算符,用于解压缩元组列表并将其作为参数提供给函数,如下所示: args = [3, 6] range(*args) # call with arguments unpacked from a list 这相当于: range(3, 6) 有人知道是否有一种方法可以在PHP中实现这一点吗?在谷歌上搜索“PHP解包”的一些变体并没有立即发现任何东西。。也许它在PHP中被称为不同的东西?您可以使用它来实现: 调用用户函数数组(“范围”,$args)来

Python提供了“*”运算符,用于解压缩元组列表并将其作为参数提供给函数,如下所示:

args = [3, 6]
range(*args)            # call with arguments unpacked from a list
这相当于:

range(3, 6)
有人知道是否有一种方法可以在PHP中实现这一点吗?在谷歌上搜索“PHP解包”的一些变体并没有立即发现任何东西。。也许它在PHP中被称为不同的东西?

您可以使用它来实现:


调用用户函数数组(“范围”,$args)
来使用您的示例。

您应该使用call\u user\u func\u数组

call_user_func_array(array(CLASS, METHOD), array(arg1, arg2, ....))

或者使用已添加的
php5.6
中的反射api。使用它,您可以摆脱
call\u user\u func\u array()。例如,具有以下功能:

function add($a, $b){
  return $a + $b;
}
用你的数组
$list=[4,6](在php5.5之后,可以用这种方式声明数组)

您可以使用
调用函数:

echo add(...$list);

在某些场景中,您可以考虑使用<代码>拆包<代码>,这在PHP中是可能的,类似于Python:

list($min, $max) = [3, 6];
range($min, $max);
至少我是这样得出这个答案的。
谷歌搜索:
PHP参数解包

非常好。我在考虑
($min,$max)
{$min,$max}
。但是,
list
是我一直在寻找的答案。这看起来像是一个旧答案——现在使用参数unpackagin操作符可能更合适,请参见@salvardor Dali的回答agree@jgivoni。PHP的总体趋势(最初出现在第7页,现在是第8页)是不再使用不受控制的函数,例如
调用用户函数数组()
函数获取参数()
,等等,而使用变量操作符“…”。现在。。。如果有人能告诉我如何在python中做到这一点,我将不胜感激:$m='getName'$name=$obj->$m();
<?php

function add(int ...$arr) {           // typehint ready
    return array_sum($arr);
}

var_dump(add(1, 2, 3, ...[1, 2, 3])); // int(12)