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 konstruktem :

 
$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 konstrukt :

 
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ý .