Miles' Blog

天涯何處無幹話,何必要講實務話

5.6 版的改變

新功能

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

0%