Miles' Blog
天涯何處無幹話,何必要講實務話
官網參考
定義 function 時,有時參數會有一個或多個,這時可以這樣寫:
function sum(...$numbers) { // $numbers is array return array_sum($numbers);}echo sum(1, 2, 3, 4); // 10
ES6 稱之為 Rest
傳 function 參數時,可以用 array 定義好,再使用這個運算子展開參數
<?phpfunction sum($a, $b, $c, $d) { return $a + $b + $c + $d;}$items = [1, 2, 3, 4];echo sum(...$items); // 10echo call_user_func('sum', ...$items); // 10echo call_user_func_array('sum', $items); // 10
三個結果是一樣的,不過用新的運算子 ... 將會比使用 call_user_func_array() 快三倍
...
call_user_func_array()
ES6 稱之為 Spread