Variablen verknüpfen (nicht Inhalt)[/b]
[B]Link zum ganzen Beitrag:[/B]
[url=http://de.wikibooks.org/wiki/Websiteentwicklung:_PHP:_Variablen]Websiteentwicklung: PHP: Variablen ? Wikibooks, Sammlung freier Lehr-, Sach- und Fachbücher[/url]
[B]Variable Variablen[/B]
Manchmal kommt es vor, dass man eine Variable benötigt, deren Name sich ändert, je nachdem was für ein Code davor ausgeführt wurde. Damit man nicht jede Variable überprüfen muss ob diese nun gesetzt ist oder eine andere gibt es variable Variablen. Die variable Variable unterscheidet sich nur insofern von normalen Variablen, als dass beim Angeben des Variablennamens eine weitere Variable benutzt wird. Allerdings erhöhen variable Variablen die Zeit für nachträgliche Änderungen meist stark und sollten daher nur in besonderen Fällen verwendet werden.
[LEFT] [FONT=monospace] $varname = 'test';
$test = 'Hallo';
echo $$varname; // Ausgabe: Hallo
[/FONT]
[/LEFT]
Zuerst wird eine Variable definiert welche den Namen der benötigten Variable beinhaltet und dann die Variable mit dem Namen. Am Schluss wird dann zuerst das "innere" $varname zum String "text" umgewandelt und dann der Inhalt der neuen Variable $test ausgegeben.
Wie schon bei den Variablen in Strings gibt es auch hier das Problem, dass eine variable Variable vielleicht nur zum Teil variabel ist. Das folgende Beispiel verdeutlicht das Problem:
[LEFT] [FONT=monospace] $varname = 'test';
$dieser_test_ist_toll = 'Test Ausgabe';
echo $dieser_$varname_ist_toll; // Würde zu einem Fehler führen, weil die Variable $varname_ist_toll
// nicht existiert.
[/FONT]
[/LEFT]
Der Name der Variable kann genauso wie bei den Strings auch hier in geschweifte Klammern gesetzt werden, um genau zu kennzeichnen, wo die Variable anfängt und wo sie aufhört.
[LEFT] [FONT=monospace] echo $dieser_{$varname}_ist_toll; // Ausgabe: Test Ausgabe
[/FONT]
[/LEFT]
Variable Variablen kommen nur sehr selten zum Einsatz da es nur wenige Situationen gibt wo diese Art von Variablen genutzt werden muss.