Hallo,
also wenn ich das richtig verstanden habe ist das eine Variable in einer variable???
naja, so ähnlich. Es ist eine Variable, deren Name sich aus einem beliebigen Ausdruck ergibt, der natürlich auch weitere Variablen enthalten kann.
wenn ich "intern" $a = 1; definiere und "extern" ${$a} = a; ist das wie eine art baumstruktur???
Nein, dann würdest du eine Variable mit dem Namen "1" erzeugen. Und der Ausdruck a, den du dieser Variablen zuweist, wäre eigentlich der Wert einer Konstanten mit dem Namen "a"; da es aber vermutlich keine definierte Konstante mit diesem Namen gibt, nimmt PHP stattdessen den String "a".
"intern" darf ich das nicht verändern also $a = 2; es sei den ich ändere das "extern" wie ${$a} = b; dann kann ich auch "intern" verändern???
Hä? Das habe ich nicht verstanden.
<?php
$a = "1";
echo $a . "<br />";
${$a} = "a";
echo ${$a} . "<br />";
echo $a . " " . ${$a} . "<br />";
$a = "2";
echo $a . "<br />";
${$a} = "b";
echo ${$a} . "<br />";
echo $a . " " . ${$a} . "<br />";
?>
So habe ich es jedenfals verstanden. It das richtig und wofü macht man das?
Es ist anscheinend nicht ganz richtig, wie du es bisher verstanden hast; und mit rund 30 Jahren Programmierer-Erfahrung würde ich sagen, eigentlich macht man das gar nicht. Das PHP-Konzept der variablen Variablen verführt einen zu Fehlkonstruktionen, die man meist mit Arrays oder Objekten sehr viel besser lösen könnte.
Wenn ich einem Anfänger PHP beibringen wollte, wären variable Variablen ein Kapitel, das ich ganz bewusst auslassen würde.
So long,
Martin