avoir un nom de variable dynamique

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : avoir un nom de variable dynamique

par nougitch » 21 avr. 2006, 12:05

Merci ouckileou.

par ouckileou » 21 avr. 2006, 11:54

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...

par nougitch » 21 avr. 2006, 11:53

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à ;-)

par nougitch » 21 avr. 2006, 11:49

Bon, j'ai opté pour eval() qui fonctionne très bien.
Merci pour la doc jpaul, très intéressant.
@+

par thierry59 » 21 avr. 2006, 11:46

interessant tous ca...

mais a quoi sert les variables dynamiques? tu a un example d'itilisation?

par nougitch » 21 avr. 2006, 11:05

Je vous remercie les gars, c'est sympa d'être si réactifs.

Je teste vos solutions et reviens dans quelques minutes.

par jpaul » 21 avr. 2006, 11:01

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 ?

par Ryle » 21 avr. 2006, 10:58

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

par nougitch » 21 avr. 2006, 10:55

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

par thierry59 » 21 avr. 2006, 10:44

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 
   } 

avoir un nom de variable dynamique

par nougitch » 21 avr. 2006, 10:21

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