Wie bereits erwähnt , können (sollten!) Ab PHP ...
5.6+ das Token (auch bekannt als "Splat-Operator", Teil der Funktionalität für verschiedene Funktionen) verwendet werden, um eine Funktion mit einer Reihe von Argumenten einfach aufzurufen:
<?php
function variadic($arg1, $arg2)
{
// Do stuff
echo $arg1.' '.$arg2;
}
$array = ['Hello', 'World'];
// 'Splat' the $array in the function call
variadic(...$array);
// 'Hello World'
Hinweis: Array-Elemente werden anhand ihrer Position im Array und nicht anhand ihrer Schlüssel Argumenten zugeordnet .
Wie pro CarlosCarucce Kommentar , diese Form der Argumentation auspacken ist bei weitem die schnellste Methode in allen Fällen. In einigen Vergleichen ist es über 5x schneller als call_user_func_array
.
Beiseite
Weil ich denke, dass dies wirklich nützlich ist (obwohl es nicht direkt mit der Frage zusammenhängt): Sie können den Splat-Operator-Parameter in Ihrer Funktionsdefinition tippen , um sicherzustellen, dass alle übergebenen Werte einem bestimmten Typ entsprechen.
(Denken Sie daran, dass dies der letzte von Ihnen definierte Parameter sein MUSS und dass alle an die Funktion übergebenen Parameter im Array gebündelt werden.)
Dies ist ideal, um sicherzustellen, dass ein Array Elemente eines bestimmten Typs enthält:
<?php
// Define the function...
function variadic($var, SomeClass ...$items)
{
// $items will be an array of objects of type `SomeClass`
}
// Then you can call...
variadic('Hello', new SomeClass, new SomeClass);
// or even splat both ways
$items = [
new SomeClass,
new SomeClass,
];
variadic('Hello', ...$items);