Mailinglisten-Archive |
>Hallo Liste,
>ich hätte da mal folgendes Problem (ich weiß nicht, ob es überhaupt
möglich
>ist):
>Ich habe eine Schleife in der etwas aufgebaut werden soll. Dort generiere
>ich "$test = ('$' . 'hallo_' . $i);" einen Variablennamen --> $hallo_1.
>Leider habe ich einen String und keinen Variblennamen. Kann ich nun
>irgendwie sagen, dass "$test" keinen String enthält, sondern den Wert
einer
>Variable, bzw. dass $hallo_1 eine Variable ist?
>Danke vorab
Hi Jan-Philip
Manchmal ist es erforderlich, variable Variablen-Bezeichner zu benutzen.
Das bedeutet, einen Variablen-Namen zu setzen und dynamisch zu gebrauchen.
Eine normale Variable wird wie folgt gebildet:
$a = "hallo";
Eine variable Variable nimmt den Wert einer Variablen und behandelt ihn als
Bezeichner der Variablen. Im obigen Beispiel kann hallo als Variablen-Name
gebraucht werden, indem man zwei $-Zeichen benutzt, also schreibt:
$$a = "Welt";
Nun existieren in der PHP-Symbol-Struktur zwei definierte und gespeicherte
Variablen: $a mit dem Inhalt "Hallo" und $hello mit dem Inhalt "Welt".
Deshalb wird die Anweisung
echo "$a ${$a}";
zur gleichen Ausgabe führen wie:
echo "$a $hallo";
also zu: hallo Welt.
Wenn sie variable Variablen mit Arrays verwenden, müssen sie eine
Unklarheit beachten. Wenn sie nämlich $$a[1] schreiben, dann muss der
Parser wissen, ob sie $a[1] als Variable oder $$a als Variable und dann [1]
als Index dieser Variablen verwenden wollen bzw. gemeint haben. Die Lösung:
Verwenden sie ${$a[1]} für den ersten Fall und ${$a}[1] für den zweiten.
MFG Wolfgang
php::bar PHP Wiki - Listenarchive