Der Spread-Operator findet aber auch in der Funktionsdefinition seine Anwendung. Dort dient er dazu, eine beliebige Anzahl von Argumenten entgegenzunehmen. Diese Funktionen werden dann variadisch genannt. Vor PHP 5.6 mussten Entwickler auf interne Funktionen wie func_get_args() zurückgreifen, um beliebig viele Argumente in einer Funktion zu verarbeiten.
function addiere(...$zahlen) {
return array_sum($zahlen);
}
addiere(10, 20, 30); // ergibt 60
Seit PHP 7.4 lässt sich der Spread Operator auch direkt innerhalb von Array Ausdrücken verwenden. Damit können mehrere Arrays in einem einzigen Schritt zusammengeführt werden.
$arr1 = [1, 2];
$arr2 = [4, 5];
[...$arr1, 4, ...$arr2];
// ergibt [1, 2, 3, 4, 5]
Seit PHP 8.1 lässt sich auch ein assoziatives Array mit String Keys entpacken. Bei doppelten String Keys überschreibt der spätere Wert den früheren.
$arr1 = ['color' => 'red', 'size' => 'm'];
$arr2 = ['color' => 'blue'];
[...$arr1, ...$arr2];
// ergibt ['color' => 'blue, 'size' => 'm']