Informatique


Créer dynamiquement des variables

Construire des variables

On se propose de créer une variable à partir du contenu d'une variable!

  • $$client = "bob"; $client est déréférencé et renvoie "user", en plaçant un $ on crée la variable $user à laquelle on affecte "bob"
  • echo($$client); on déréférence de l'intérieur vers l'extérieur, $$client renvoie $user et $user revoie "bob"
  • echo("$$client"); avec les guillemets on ne peut déréférencer qu'une seule fois, on a donc $user
  • echo("${$client}"); avec les guillemets les accolades permettent de forcer le deuxième déréférencement
Démo
<?php
$client = "user";            //on charge le nom d'une variable dans une variable
$$client = "bob";            //on charge la valeur "bob" dans la variable $user
echo("<br>$user<br>");        //affiche bob
echo($$client);            //affiche bob
echo("<br>");
echo("$$client <br>");        //affiche $user
echo("${$client }<br>");    //affiche bob
echo("${'user'}<br>");        //affiche bob
?>

Générer dynamiquement des variables

Dans l'exemple qui suit on génère 10 variables dynamiquement.

Démo
<?php
for($i=0;$i<10;$i++) {
 $vari="quest";    //on charge "quest" dans la variable $vari
 $vari=$vari.$i;//une variable est crée par concaténation entre $vari et le compteur de boucle
 $$vari=$i;    //chargement dans la variable créée dynamiquement la valeur du compteur*/
 echo("$$vari=${$vari}<br>");//Affichage
}
?>