une variable dans une variable...

Eléphant du PHP | 115 Messages

16 nov. 2006, 17:38

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:
Quelques réalisations www.cdi-interactiv.com

Mammouth du PHP | 592 Messages

16 nov. 2006, 17:43

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++; 
} 

Eléphant du PHP | 115 Messages

16 nov. 2006, 17:50

Oui en effet, mais y'a pas d'autres solutions ?

parce qu'il faut que je remplisse un tableau avec toutes les valeurs...
Quelques réalisations www.cdi-interactiv.com

Avatar du membre
ViPHP
ViPHP | 3008 Messages

16 nov. 2006, 17:51

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++;  
}

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

16 nov. 2006, 17:52

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
?>
....
Modifié en dernier par sadeq le 16 nov. 2006, 18:10, modifié 2 fois.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

ViPHP
ViPHP | 3607 Messages

16 nov. 2006, 17:55

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

Mammouth du PHP | 592 Messages

16 nov. 2006, 17:57

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:

Eléphant du PHP | 115 Messages

16 nov. 2006, 18:12

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 )... :?:
Quelques réalisations www.cdi-interactiv.com

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

16 nov. 2006, 18:14

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}
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 3607 Messages

16 nov. 2006, 18:16

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: )

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

16 nov. 2006, 18:49

Sadeq il a triché [-(
Il a le droit : il est viPHP. :langue:

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

17 nov. 2006, 12:49

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: