PHP ...语法糖的应用
...语法糖是在PHP5.6中出现的新特性,可以表示变长参数,主要有2中应用方式
1. 定义函数参数
<?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
?>
2. 函数参数较多时,通过一个变量传入
<?php
function add($a, $b, $c) {
return $a + $b + $c;
}
$operators = [2, 3];
echo add(1, ...$operators); // 6
?>
个人理解
...的语法糖在编写框架时使用较多,平时项目代码中很少使用,在平时在项目中定义函数时最好还是把每个参数的含义定义清晰,避免让调用者产生歧义。