phpbar.de logo

Mailinglisten-Archive

AW: [php] String ist eine Variabale

AW: [php] String ist eine Variabale

Wolfgang Hauck php_(at)_phpcenter.de
Wed, 22 May 2002 09:51:13 +0200


>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