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 及更高版本。
形参,形式参数,是指函数在定义时给定的参数; 实参,实际参数,是指函数在调用时给定的参数。 |
|