找回密码
 注册

[PHP] PHP将数组作为参数传递给函数

php 发表于 2015/11/8 17:28 | 显示全部楼层 |阅读模式
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以数组形式传递参数的综合实例。
  1. <?php
  2.         /*
  3.          * @author ohcc@163.com
  4.          * PHP 函数定义新语法: ...$args
  5.          * $args 不是固定的,你可以换成其他变量名
  6.          * $args 相当于你在函数内部 $args = func_get_args();
  7.          * 如果已经给定了部分参数,则 $args 是包含除去给定了的形参以外的所有参数的数组
  8.         */
  9.         function wxc ($a, ...$args){
  10.                 echo '<pre>';
  11.                 print_r($args);
  12.                 echo '</pre>';
  13.         }
  14.         wxc ('Hello', 'World', 'wuxiancheng.cn');
  15.         wxc (...array(1,2,3));
  16.         wxc (1,2, ...array(3,4,5));
  17.         $args = array(3,4,5,6,7);
  18.         wxc (1,2, ...$args);        
  19. ?>
复制代码
以上方法和代码仅支持 PHP 5.6 及更高版本。
形参,形式参数,是指函数在定义时给定的参数; 实参,实际参数,是指函数在调用时给定的参数。

手机版|轻松E站

轻松E站

快速回复 返回顶部 返回列表