Forum und email

Változó változók

Néha kényelmes változó változók használata. Ez olyan változó jelent, amelynek a nevét dinamikusan lehet beállítani. A normál változót így adunk értéket:

<?php
$a 
'hello';
?>

A változó változó veszi egy változó értékét, amelyet egy másik változó értékének tekinti. A fenti példában a hello, egy változó neveként használható, a $a elé még egy $-t írva.

<?php
$$a 'világ';
?>

Ekkor már két változó van a PHP szimbólumtáblájában: $a, amelynek tartalma "hello", és $hello, amelynek a tartalma "világ". Ennélfogva a következő programsor:

<?php
echo "$a ${$a}";
?>

pontosan ugyanazt csinálja, mintha ezt írtuk volna:

<?php
echo "$a $hello";
?>

Mindkettő kiírja, hogy: hello világ.

Annak érdekében, hogy változó változókat tömbökkel együtt is használhassuk, fel kell oldani a következő kétértelműséget. A $$a[1] kifejezés kiértékelésekor a feldolgozónak tudnia kell, hogy ez a $a[1] értékét tekintse a hivatkozott változó neveként, vagy $$a-t - és ekkor és ennek a tömbnek 1. indexű elemére történt a hivatkozás. Az első esetben ${$a[1]}, míg a másodikban ${$a}[1] írandó.

Warning

Jó, ha észben tartod, hogy változó változókat nem használhatsz a PHP szuperglobális tömbjeivel függvényekben és osztályeljárásokban.