Változó változók

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