ottogal: PHP: Variablennamen erzeugen?

Beitrag lesen

Vielen Dank allen für die rasche Erhellung - ich glaube nun, über die variablen Variablen im Manual schon mal gestolpert zu sein...

Wozu ich das brauche:

Im Code (eines Templates für ein CMS - bitte fragt nicht nach dem Sinn...) wird immer wieder der Aufruf einer Funktion foo() nötig, die als Argument ein Array in dieser Form erwartet (und einen String zurückgibt):

echo foo(array(
	'eins' => $eins,
	'zwei' => $zwei,
	'drei' => $drei,
	)) . "\n";

Die Aufrufe dieser Funktion brauchen meist größere Arrays und längere Strings, haben jedoch immer diese Form. Um das Coden zu vereinfachen, wollte ich daher alternativ die folgende Funktion bar() verwenden, deren Aufruf nur eine einfache Liste von String-Argumenten erfordert - im Beispiel:

bar('eins', 'zwei', 'drei'); vgl. dazu im Manual.

function bar(){
    $numargs = func_num_args();
    $arg_list = func_get_args();
    $params = array[];
    for ($i = 0; $i < $numargs; $i++) {
	$key =  $arg_list[$i];
	$params[$key] =  ${$key} ;  // <<< hier fehlte mir die Kenntnis der Syntax ${$key}
    };
    echo foo($params) . "\n";
}

Noch habe ich diese Funktion nicht getestet, frage euch aber schon mal: Könnte es so klappen? Ließe sich der Code weiter vereinfachen?