|
5.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é et utilisé
dynamiquement. Une variable classique est affectée 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 ambigü. 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.
| Attention | |
Notez que les variables dynamiques ne peuvent pas être utilisées
avec les
tableaux Superglobaux de PHP.
|
|