Néha kényelmes változó változók használata. Ez egy olyan változó, aminek a nevét dinamikusan lehet beállítani. Egy normál változót így állítunk be:
1 2 3 $a = "hello"; 4 5 |
Egy változó változó veszi egy változó értékét, és egy másik változó értékének tekinti. A fenti példában a hello, egy változó neveként használható, ha $a elé még egy $-t teszünk
1 2 3 $$a = "world"; 4 5 |
Ezen a ponton már két változó van a PHP szimbólumtáblájában: $a, melynek tartalma "hello", és $hello, aminek a tartalma "világ". Ennélfogva a következő kódsor:
1 2 3 echo "$a ${$a}"; 4 5 |
pontosan ugyanazt csinálja, mintha azt írtuk volna, hogy:
1 2 3 echo "$a $hello"; 4 5 |
Azaz mindkettő azt írja ki, hogy: hello világ.
Annak érdekében, hogy változó változókat tömbként használjuk, fel kell oldanunk egy kétértelműséget. Ez pedig az, hogy ha azt írjuk, hogy $$a[1], akkor kellene tudni a scriptnek, hogy mi most $a[1]-et, mint változót szeretnénk használni, vagy $$a-t, mint változót szeretnénk, és az ő [1]-es indexét használni. Ezért az első szintaxisa: ${$a[1]} és a másodiké: ${$a}[1].