Page 1 sur 1
avoir un nom de variable dynamique
Posté : 21 avr. 2006, 10:21
par nougitch
Bonjour,
Est-il possible de modifier le nom d'une variable.
Si je prends l'exemple d'une boucle par exemple.
Puis-je faire quelque chose du genre :
for ($i = 1; $i <= 5; $i++) {
$nom_variable_$i = 'contenu_variable_1';
}
Ce qui donnerait quelque chose comme :
$nom_variable_1 = 'contenu_variable_1';
$nom_variable_2 = 'contenu_variable_2';
$nom_variable_3 = 'contenu_variable_3';
$nom_variable_4 = 'contenu_variable_4';
$nom_variable_5 = 'contenu_variable_5';
Merci par avance.
Cdt
Posté : 21 avr. 2006, 10:44
par thierry59
utilise des tableaux:
$tab= array("contenu_variable_0","contenu_variable_1","contenu_variable_2");
ou
for ($x = 1; $x <= 5; $x++) {
$nom_variable[$x] = sin($x)*200; / /example pour remplir un tableau
}
Posté : 21 avr. 2006, 10:55
par nougitch
Merci Thierry59 (je suis Lillois mais dans la capitale
Le problème, c'est que je me trouve dans une boulce WHILE.
Comment insérer autant de valeurs dans mon tableau qu'il y a de données répondant à ma boucle ?
Cdt
Posté : 21 avr. 2006, 10:58
par Ryle
C'est je pense aussi la solution la plus pratique, mais sinon tu peux utiliser la commande eval() pour évaluer une chaine texte et considérer qu'il s'agit de php :
eval ( "\$var = 123;" ); // l'antislash devant le $ permet de dire qu'il s'agit bien du caractère et non d'une variable
echo $var; // affiche "123"
$i=3;
eval ( "\$nom_variable_".$i." = 'contenu_variable_1';" );
// affectera "contenu_variable_1" dans la variable $nom_variable_3
echo $nom_variable_3;
Edit : Pour répondre à ta question, regarde son 2ème exemple, et utilise ton while() à la place de son for()

Posté : 21 avr. 2006, 11:01
par jpaul
As-tu lu la partie de la doc traitant des variables dynamiques :
http://fr2.php.net/manual/fr/language.v ... riable.php
C'est le titre de ton poste et sauf erreur de ma part, ça devrait répondre à ton besoin non ?
Posté : 21 avr. 2006, 11:05
par nougitch
Je vous remercie les gars, c'est sympa d'être si réactifs.
Je teste vos solutions et reviens dans quelques minutes.
Posté : 21 avr. 2006, 11:46
par thierry59
interessant tous ca...
mais a quoi sert les variables dynamiques? tu a un example d'itilisation?
Posté : 21 avr. 2006, 11:49
par nougitch
Bon, j'ai opté pour eval() qui fonctionne très bien.
Merci pour la doc jpaul, très intéressant.
@+
Posté : 21 avr. 2006, 11:53
par nougitch
Je génère des fonctions JavaScript en fonction des données contenues dans ma base.
C'est un peu long à expliquer mais en gros je mets en place un système de calcul automatique sur 5 niveaux, en sachant que :
- niveau 1 = SUM(niveaux 2);
- niveau 2 = SUM(niveaux 3);
- niveau 3 = SUM(niveaux 4);
- niveau 4 = SUM(niveaux 5);
Le niveau 5 étant le seul champ à saisir (les autres sont disabled').
En gros, c'est pour créer des reports de suivis de budgets rapidement.
Voilà

Posté : 21 avr. 2006, 11:54
par ouckileou
J'en remet une couche mais si c'était juste pour faire des variables de ce type : $var_1, $var_2, $var_3
un tableau était bien plus indiqué que eval() et les variables dynamiques...
Plus simple, plus facile à manipuler et plus clair à relire ensuite...
Posté : 21 avr. 2006, 12:05
par nougitch
Merci ouckileou.