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