Derzeit online: ca. 97 User  
Spenden via PayPal PHP für dich ist auch als Buch erhältlich - im handlichen Format, zum Nachschlagen, Mitnehmen oder gemütlichen nebenbei Lesen. Mit noch mehr Informationen, zusätzlichen Beispielen und Übungsaufgaben.
Jetzt in der aktualisierten Version bei Amazon oder BoD bestellen!


Schnipsel

PHP - Variable Variablen

Variable Variablen haben einen Variablennamen, der aus einer Variable besteht:
$wetter = "regen";
$$wetter = "Das ist eine variable Variable.";
In dem Fall enthält also die Variable $wetter den Wert regen und damit ist der Name der variablen Variable $regen, da er aus dem Inhalt der Variable $wetter besteht.

Erkennbar sind sie an den doppelten Dollarzeichen, die dadurch entstehen, dass eine Variable ein Dollarzeichen braucht (das erste) und dass der Name aus einer anderen Variable besteht, die natürlich ihr eigenes Dollarzeichen mitbringt (das zweite).

Wir hätten diese Variablenvariante z. B. bei der Auswertung der Umfrage einsetzen können, indem wir eine einzige Abfrage über die gesamte Tabelle gemacht hätten, anstatt jedes Tier extra abzufragen, und dabei variable Variablen verwenden können, um dennoch für jedes Tier eine eigene Variable zu haben.
<?php
$abfrage = mysqli_query($db, "SELECT * FROM haustierwunsch");
while($row = mysqli_fetch_object($abfrage))
{
  $tier = $row->haustier;
  $$tier = $row->count;
}
?>
Im ersten Durchlauf bekommt die Variable $tier den Wert "Katze", da das im ersten Datensatz im Feld haustier steht. Dadurch ist der tatsächliche Name der variablen Variable dann $Katze und sie bekommt gleich den Wert aus dem Feld count des selben Datensatzes zugewiesen - die Häufigkeit des Katzenwunsches also.

Im zweiten Durchlauf bekommt die Variable $tier dann den Wert "Hund" aus der Datenbank und damit haben wir eine zweite Variable durch die variable Variable. Jetzt heißt sie $Hund und enthält die Häufigkeit des Hundewunsches, da wir ja gerade mit dem zweiten Datensatz beschäftigt sind.

Das selbe passiert auch bei den folgenden Durchläufen der while-Schleife für jeweils einen Datensatz aus der Datenbank und somit entsteht für jeden Datensatz eine eigene Variable, die sich aus der variablen Variable bildet und den dazu gehörigen count-Wert beinhaltet.

Damit wäre nach dem letzten Durchlauf der Schleife die Anzahl der einzelnen Tierwünsche in den Variablen $Katze, $Hund, $Nagetier und $Sonstiges gespeichert.

Nicht verzweifeln, wenn das auf den ersten Blick total verwirrend wirkt, sondern einfach langsam durch überlegen, dann ist das kein Problem.

Autor: Claudia Unkelbach
© 2001 - 2017 Claudia Unkelbach
Gießener Straße 75, 35396 Gießen