4.3.4 Les variables dynamiques
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:
Une variable classique |
<?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
Les variables variables |
<?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
Equivalent de variables variables |
<?php echo "$a ${$a}"; ?>
|
produira le même affichage que :
Equivalent de variables variables |
<?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]
, l'analyseur 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.
|