
gibbons
Python stellt den “*”-Operator bereit, um eine Liste von Tupeln zu entpacken und sie einer Funktion als Argumente zu übergeben, etwa so:
args = [3, 6]
range(*args) # call with arguments unpacked from a list
Dies ist äquivalent zu:
range(3, 6)
Weiß jemand, ob es eine Möglichkeit gibt, dies in PHP zu erreichen? Einiges Googeln nach Variationen von “PHP Unpack” hat nicht sofort etwas ergeben. Vielleicht heißt es in PHP etwas anderes?

Salvador Dalí
Im php5.6
Argument entpacken via ...
(Splat-Operator) wurde hinzugefügt. Mit ihm können Sie loswerden call_user_func_array()
für diese einfachere Alternative. Zum Beispiel mit einer Funktion:
function add($a, $b){
return $a + $b;
}
Mit deinem Array $list = [4, 6];
(nach php5.5 können Sie Arrays auf diese Weise deklarieren).
Sie können Ihre Funktion mit aufrufen ...
:
echo add(...$list);

Greg
Sie können verwenden call_user_func_array()
um das zu erreichen:
call_user_func_array("range", $args);
um dein Beispiel zu verwenden.
In bestimmten Szenarien können Sie die Verwendung von in Betracht ziehen unpacking
was in PHP möglich ist, ist ein ähnlicher Weg wie Python:
list($min, $max) = [3, 6];
range($min, $max);
So bin ich zumindest zu dieser Antwort gekommen. Google-Suche: PHP argument unpacking
Sie sollten das call_user_func_array verwenden
call_user_func_array(array(CLASS, METHOD), array(arg1, arg2, ....))
http://www.php.net/call_user_func_array
oder verwenden Sie die Reflexions-API http://www.php.net/oop5.reflection
<?php
function add(int ...$arr) { // typehint ready
return array_sum($arr);
}
var_dump(add(1, 2, 3, ...[1, 2, 3])); // int(12)
Ein weiteres Beispiel mit … – Operator.
RFC: https://wiki.php.net/rfc/variadics
9978900cookie-checkEntpacken eines Arrays von Argumenten in PHPyes