PHP在数组参数传递给函数,如何将数组作为函数参数列表传递给函数呢?
PHP以数组传递参数,对于参数个数不确定的函数调用来说,是极为方便和必要的。
比如某个函数需要3个参数,用一个数组有序存放这3个参数,然后在函数调用的时候把这个数组传到函数中去。

数组传递参数在PHP 5.6中得到了实现,后续版本都可以使用这个功能。
先介PHP 5.6+中函数定义的一种新方式:…$args 语法

在函数定义时用 …$args 来代替func_get_args()获取实参,$args 是一个自定义变量
当然,你也可以定义部分形参,如 function wxc ($a, $b, …$args), 这时$args就是包含除去已经给定的参数以外的其他参数的数组
但需要注意,如果定义时给定了部分形参,则函数在调用时给的参数个数至少要是 … 之前的形参的个数,否则会报错。

函数调用时也是一样的道理,可以使用一个数组作为所有实参传递给函数,形如 wxc(…$args) 或者 wxc (…array(1,2,3)), 也可以在 … 之前给定部分实参,如 wxc (1,2, …array(3,4,5)); 实参的个数并不需要和形参对应,但注意实参个数一定不能少于形参个数。

PHP以数组形式传递参数的综合实例。

<?php
/*
* @author ohcc@163.com
* PHP 函数定义新语法: …$args
* $args 不是固定的,你可以换成其他变量名
* $args 相当于你在函数内部 $args = func_get_args();
* 如果已经给定了部分参数,则 $args 是包含除去给定了的形参以外的所有参数的数组
*/
function wxc ($a, …$args){
echo ‘<pre>’;
print_r($args);
echo ‘</pre>’;
}
wxc (‘Hello’, ‘World’, ‘wuxiancheng.cn’);
wxc (…array(1,2,3));
wxc (1,2, …array(3,4,5));
$args = array(3,4,5,6,7);
wxc (1,2, …$args);
?>

以上方法和代码仅支持 PHP 5.6 及更高版本。
形参,形式参数,是指函数在定义时给定的参数; 实参,实际参数,是指函数在调用时给定的参数。