...语法糖是在PHP5.6中出现的新特性,可以表示变长参数,主要有2中应用方式
<?php function f($req, $opt = null, ...$params) { // $params 是一个包含了剩余参数的数组 printf('$req: %d; $opt: %d; number of params: %d'."\n", $req, $opt, count($params)); } f(1); // $req: 1; $opt: 0; number of params: 0 f(1, 2); // $req: 1; $opt: 2; number of params: 0 f(1, 2, 3); // $req: 1; $opt: 2; number of params: 1 f(1, 2, 3, 4); // $req: 1; $opt: 2; number of params: 2 f(1, 2, 3, 4, 5); // $req: 1; $opt: 2; number of params: 3 ?>
<?php function add($a, $b, $c) { return $a + $b + $c; } $operators = [2, 3]; echo add(1, ...$operators); // 6 ?>
...的语法糖在编写框架时使用较多,平时项目代码中很少使用,在平时在项目中定义函数时最好还是把每个参数的含义定义清晰,避免让调用者产生歧义。