Page 1 sur 1

une variable dans une variable...

Posté : 16 nov. 2006, 17:38
par toony.m
Bonjour,

Comment fait-on pour insérer une variable dans une variable ?

J'ai par ex. plusieurs variables qui s'appellent $papier1, $papier2,etc...
et je cherche à les afficher d'un coup dans une boucle while :

$q=1;
while($q<=5){
echo "Papier : ".$papier.$q."<br>";
$q++;
}

Est ce possible ? :roll:

Posté : 16 nov. 2006, 17:43
par fred9999
salut
il aurai été plus facile de faire un tableau
$q=1; 
$papier=array();
$papier[1]="essai1";
while($q<=5){ 
echo "Papier : "".$papier[$q]."<br>"; 
$q++; 
} 

Posté : 16 nov. 2006, 17:50
par toony.m
Oui en effet, mais y'a pas d'autres solutions ?

parce qu'il faut que je remplisse un tableau avec toutes les valeurs...

Posté : 16 nov. 2006, 17:51
par charabia
salut
il aurai été plus facile de faire un tableau
$q=1; 
$papier=array();
$papier[1]="essai1";
while($q<=5){ 
echo "Papier : "".$papier[$q]."<br>"; 
$q++; 
} 
Attition il y a un guillemet en trop ;)
$q=1;  
$papier=array(); 
$papier[1]="essai1"; 
while($q<=5){  
echo "Papier : ".$papier[$q]."<br />";  
$q++;  
}

Posté : 16 nov. 2006, 17:52
par sadeq
C'est exactement la définition d'un tableau en programmation.
La variable qui peut contenir une suite de variables s'appelle donc : un tableau (terme technique: ARRAY)

En Php comme d'autres langages peut traiter des tableaux, comme suit:
<?php
   //1°: il faut créer le tableau et son contenu
   //Par exemple, un tableau papier qui contient 3 valeurs (formats de papier)
   $papier = array("A3", "A4", "Enveloppe");

   //2°: on peut donc utiliser ce tableau papier pour lire ses valeurs
   $q=0; //la 1° valeur du tableau est numérotée 0
   $nombre_papiers =  count($papier); //count: compte les valeurs du tableau
   while($q<$nombre_papiers){ 
       echo "Papier : ".$papier[$q]."<br>"; //une valeur correspond à la position [$q] dans le tableau $papier
    $q++; //position suivante possible
   } 
   //fin de la boucle
?>
Ou alors, si c'est pour éviter les tableaux, on peut effectivement évaluer une variable tout en construisant son nom dynamiquement. Ce qui correspond à ce que tu veux faire :
Exemple:
<?php
$var1 = "toto"; 
$var2 = "popo"; 

$q = 1; 
echo ${"var".$q}; //affiche $var1 

$q = 2; 
echo ${"var".$q}; //affiche $var2
?>
....

Posté : 16 nov. 2006, 17:55
par jojolapine
si tu nous en disais un peu plus, on pourrait certainement t'aider à voir si le tableau serait ou non une bonne solution...
sinon, pour les variables, fait comme ceci(exemple):
<?php
$essai1=1;
$essai2=2;
$essai3=3;
for($i=1;$i<4;$i++){
    echo ${'essai'.$i};
}
?>

Posté : 16 nov. 2006, 17:57
par fred9999
oups désolé pour le " :lol:

sinon pardon j'oublie des fois que je répond dans "Débuter en php"

comme le dis sadeg le Array definis que la variable est un tableau.

Désolé de mettre mal expliqué ..... je sors :arrow:

Posté : 16 nov. 2006, 18:12
par toony.m
Parfait!
J'ai trouvé la réponse j'ai jojolapine.
echo {'papier'.$q};

je ne connaissais pas, merci beaucoup à tous les autres également!!! :D

PS: par contre coller les 2 variables n'a pas marché ( $var$i )... :?:

Posté : 16 nov. 2006, 18:14
par zeus
PS: par contre coller les 2 variables n'a pas marché ( $var$i )... :?:
C'est normal, si tu veux coller le contenu de 2 variable, il faut les concaténer, avec le '.'

Essaye
{$var.$i}

Posté : 16 nov. 2006, 18:16
par jojolapine
Sadeq il a triché [-(
il a édité deux fois son message parceque ça marchait pas ce qu'il avait mis...
et après il a fait que copier sur moi :langue: (te fache pas un sadeq :oops: )

Posté : 16 nov. 2006, 18:49
par albat
Sadeq il a triché [-(
Il a le droit : il est viPHP. :langue:

Posté : 17 nov. 2006, 12:49
par sadeq
Sadeq il a triché [-(
Il a le droit : il est viPHP. :langue:
moi je relis mes posts car des fois je parle conceptuel plus que pratique.
et j'édite pour les lecteurs prochains :wink: