PHP函数的无限参数?

时间:2011-02-15 20:54:46

标签: php function arguments

在php中,您如何创建一个可以使用无限数量参数的函数:myFunc($p1, $p2, $p3, $p4, $p5...);

我的下一个问题是:你如何将它们传递给另一个类似

的函数
function myFunc($params){
  anotherFunc($params);
}

anotherFunc会收到它们,就像使用anotherFunc($p1, $p2, $p3, $p4, $p5...)

调用它一样

4 个答案:

答案 0 :(得分:13)

call_user_func_array('anotherFunc', func_get_args());

func_get_args返回一个数组,其中包含传递给它所调用函数的所有参数,call_user_func_array调用给定函数,并传递一个参数数组。

答案 1 :(得分:4)

以前您应该使用func_get_args(),但在新的 php 5.6 currently in beta)中,您可以使用... operator代替使用。

例如,你可以写:

function myFunc(...$el){
  var_dump($el); 
}

$el将包含您将传递的所有元素。

答案 2 :(得分:2)

有没有理由不能使用1个函数参数并将所有信息作为数组传递?

答案 3 :(得分:0)

查看PHP的variable-length argument lists文档。

问题的第二部分是variable functions

  

...如果变量名称附加了括号,PHP将查找带有。的函数   与变量评估的名称相同,并将尝试执行它。