Il est pratique d'avoir parfois des noms de variables qui sont variables.
C'est-à-dire un nom de variable qui est affectée et utilisée
dynamiquement. Une variable classique est affecté avec
l'instruction suivante:
<?php
$a = "bonjour";
?>
Une variable dynamique prend la valeur d'une variable et l'utilise
comme nom d'une autre variable. Dans l'exemple ci-dessous,
bonjour peut être utilisé comme le nom d'une
variable en utilisant le "$$" précédent la variable.
C'est-à-dire
<?php
$$a = "monde";
?>
A ce niveau, deux variables ont été définies et
stockées dans l'arbre des symboles PHP: $a avec comme valeur
"bonjour" et $bonjour avec comme valeur "monde". Alors, l'instruction
<?php
echo "$a ${$a}";
?>
produira le même affichage que :
<?php
echo "$a $bonjour";
?>
c'est-à-dire : bonjour monde.
Afin de pouvoir utiliser les variables dynamiques avec les tableaux,
vous avez à résoudre un problème ambigu. Si vous
écrivez $$a[1], le parseur a besoin de savoir si vous
parler de la variable qui a pour nom $a[1] ou bien si vous voulez
l'index [1] de la variable $$a. La syntaxe pour résoudre
cette ambiguïté est la suivante: ${$a[1]} pour le premier
cas, et ${$a}[1] pour le deuxième.