PHP ist eine Sprache in der dynamisch typisiert wird. Aber nicht nur das. So wie man es gerade braucht, wird PHP versuchen, es einem recht zu machen. Hört sich seltsam an? Stimmt, es ist auch nur einer der vielen Kritikpunkte, der gern gegen PHP verwendet wird. Aber mal ernsthaft: Das man dynamisch auf Variablen vor allem in Arrays oder auch Klassen zugreifen kann, ist vielen vielleicht klar oder kann in einem meiner älteren Beiträge auch noch einmal nachverfolgt werden. Aber auch ganz einfache Variablen, die nicht in einem Verbund existieren, können ganz schön dynamisch sein.
Wie genau so etwas funktioniert, werde ich ersteinmal mit einem kleinen Beispiel demonstrieren:
echo $var . ‘ ‘ . ${$var} . ${${$var}};
Es wird das überall anzutreffende “Hallo Welt!” ausgegeben. Aber was passiert da eigentlich genau? Um das herauszufinden, überführen wir das Beispiel in eine Funktion, um mit get_defined_vars () nicht die komplette Umgebung, sondern nur die eben definierten Variablen anzuzeigen.
Nach Ausführung der Zeilen wird Array ( [var] => Hallo [Hallo] => Welt [Welt] => ! ) ausgegeben. Neben $var, haben wir also außerdem die Variablen $Hallo und $Welt definiert.
Sparsam eingesetzt sicher hier und da sinnvoll! Ansonsten aber stellt dies einen garantierten Beitrag dar, um den produzierten Code unleserlich zu machen und seine Kollegen zur Verzweiflung zu bringen.
Have fun!