在php中,您如何创建一个可以使用无限数量参数的函数:myFunc($p1, $p2, $p3, $p4, $p5...);
我的下一个问题是:你如何将它们传递给另一个类似
的函数function myFunc($params){
anotherFunc($params);
}
但anotherFunc
会收到它们,就像使用anotherFunc($p1, $p2, $p3, $p4, $p5...)
答案 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将查找带有。的函数 与变量评估的名称相同,并将尝试执行它。