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
}
?>