新功能
Variadic functions
定義 function 時,有時參數會有一個或多個,這時可以這樣寫:
function sum(...$numbers) {
// $numbers is array
return array_sum($numbers);
}
echo sum(1, 2, 3, 4); // 10
ES6 稱之為 Rest
Argument unpacking
傳 function 參數時,可以用 array 定義好,再使用這個運算子展開參數
<?php
function sum($a, $b, $c, $d) {
return $a + $b + $c + $d;
}
$items = [1, 2, 3, 4];
echo sum(...$items); // 10
echo call_user_func('sum', ...$items); // 10
echo call_user_func_array('sum', $items); // 10
三個結果是一樣的,不過用新的運算子 ... 將會比使用 call_user_func_array() 快三倍
ES6 稱之為 Spread