Forum und email
Proměnné s proměnnými názvy

Proměnné s proměnnými názvy

Někdy je vhodné, aby se názvy proměnných mohly měnit, tj. aby mohly být dynamicky nastavovány a používány. Normální proměnná se nastavuje takovýmto příkazem:

$a = "ahoj";

Proměnná s proměnným názvem vezme hodnotu proměnné a použije ji jako název proměnné. Ve výše uvedeném příkladu, ahoj lze použít jako název proměnné uvedením dvou symbolů dolaru:

$$a = "světe";

V této chvíli byly definovány dvě proměnné a byly uloženy do stromu symbolů PHP: $a s obsahem "ahoj" a $ahoj s obsahem "světe". Proto příkaz:

echo "$a ${$a}";

provede přesně totéž jako:

echo "$a $ahoj";

tedy oba vyprodukují: ahoj světe.

Při použití proměnných s proměnnými názvy s poli musíte vyřešit problém víceznačnosti. Tj. když napíšete $$a[1], parser potřebuje vědět, máte-li na mysli použití $a[1] jako proměnné nebo chcete $$a jako proměnnou a potom index [1] v této proměnné. Syntaxe pro řešení této víceznačnosti je ${$a[1]} pro první případ a ${$a}[1] pro druhý.