Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2797 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Déclarer une variable globale à partir d'une chaine de caractère ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Déclarer une variable globale à partir d'une chaine de caractère ?

n°486878
Lex
Posté le 14-08-2003 à 10:19:03  profilanswer
 

salut, voilà ce que je cherche à faire.  
 
- Un script PHP possède une variable $toto. Mais selon ce qui est passé en paramètre, je ne sais pas comment elle s'appelle (en effet, il peut s'agir de $toto, $tata, $tutu ...) car il s'agit d'un champ d'un formulaire HTML. Je récupère son nom via une chaine de caractère (disons $c = "toto" ).
 
- Ce script appelle une fonction traiter() dans lequel je dois récupérer la variable $toto. Traiter() connait le nom de la variable car je lui passe en paramètre $c = "toto".
 
- Maintenant, comment récupérer la valeur de $toto dans cette fonction traiter() ? Je pourrais le faire en déclarant une variable global, mais "global $$c" ne marche pas ... une solution svp !!??
 
edit : solution, passer par eval()


Message édité par Lex le 14-08-2003 à 10:42:41
mood
Publicité
Posté le 14-08-2003 à 10:19:03  profilanswer
 

n°486881
simogeo
j'ai jamais tué de chats, ...
Posté le 14-08-2003 à 10:23:07  profilanswer
 

:heink:  
est-ce bien nécessaire d'utiliser une vraibale globale ?
 

Code :
  1. traiter($c) {
  2.    // traitement sur $new_c=$c;
  3.    return $new_c;
  4. }


 
 
non ? [:spamafote]  


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°486885
Lex
Posté le 14-08-2003 à 10:25:23  profilanswer
 

non. :D  
 
car je ne cherche pas à modifier $c, mais $toto (cad la variable correspondant à la chaine de caractère $toto) !

n°486887
ACut
Posté le 14-08-2003 à 10:27:45  profilanswer
 

simogeo a écrit :

:heink:  
est-ce bien nécessaire d'utiliser une vraibale globale ?
 

Code :
  1. traiter($c) {
  2.    // traitement sur $new_c=$c;
  3.    return $new_c;
  4. }


 
 
non ? [:spamafote]  
 


 
Nan mais ce qu'il veut c'est bosser avec $$c... et apparemment c'est pas accessible bien que $toto, $titi, etc. soient globales. J'ai compris le pb ou pas?


---------------
NOUVEAU! Le guide de l'édition en version ebook : http://marcautret.free.fr/autret/150q-ebook/
n°486889
ACut
Posté le 14-08-2003 à 10:29:13  profilanswer
 

Lex a écrit :

non. :D  
 
car je ne cherche pas à modifier $c, mais $toto (cad la variable correspondant à la chaine de caractère $toto) !


 
Et si tu passes par un eval() dans traiter(...) ?


---------------
NOUVEAU! Le guide de l'édition en version ebook : http://marcautret.free.fr/autret/150q-ebook/
n°486891
ACut
Posté le 14-08-2003 à 10:31:35  profilanswer
 

Code :
  1. traiter($nom_var_glob)
  2. {
  3. $exec = "global $nom_var_glob;";
  4. eval($exec);
  5. .../...
  6. }


 
Un truc dans ce style?


---------------
NOUVEAU! Le guide de l'édition en version ebook : http://marcautret.free.fr/autret/150q-ebook/
n°486892
simogeo
j'ai jamais tué de chats, ...
Posté le 14-08-2003 à 10:32:32  profilanswer
 

Lex a écrit :

non. :D  
 
car je ne cherche pas à modifier $c, mais $toto (cad la variable correspondant à la chaine de caractère $toto) !


autant pour moi  [:volta]


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°486893
belgique
Posté le 14-08-2003 à 10:33:26  profilanswer
 

Code :
  1. ${$c}=traiter(${$c});
  2. function traiter($mavar) {
  3.        return $mavar;
  4.   }


Message édité par belgique le 14-08-2003 à 10:33:59
n°486895
Lex
Posté le 14-08-2003 à 10:33:38  profilanswer
 

Je vais essayer avec eval, merci ... je reviens si ça marche pas :D

n°486902
Lex
Posté le 14-08-2003 à 10:36:56  profilanswer
 

Merci les gars  :jap: (ou les filles peut-être ??  :whistle: )
 
ça marche avec eval, même si j'aurais préféré que ça marche avec une variable super globale genre avec $_GET(...). Le code est un peu impossible à lire maintenant mais c bon :D

mood
Publicité
Posté le 14-08-2003 à 10:36:56  profilanswer
 

n°486911
ACut
Posté le 14-08-2003 à 10:44:50  profilanswer
 

C'est pas parce que ça MARCHE que c'est la réponse optimale, loin s'en faut!
 
J'ai dégainé eval() parce que je voyais pas autre chose a priori, mais l'utiliser révèle, souvent, une mauvaise conception. M'enfin si ça te permet de faire tourner le code... quitte à le toiletter ensuite.


---------------
NOUVEAU! Le guide de l'édition en version ebook : http://marcautret.free.fr/autret/150q-ebook/
n°486921
Lex
Posté le 14-08-2003 à 10:57:49  profilanswer
 

ACut a écrit :

C'est pas parce que ça MARCHE que c'est la réponse optimale, loin s'en faut!
 
J'ai dégainé eval() parce que je voyais pas autre chose a priori, mais l'utiliser révèle, souvent, une mauvaise conception. M'enfin si ça te permet de faire tourner le code... quitte à le toiletter ensuite.


 
exact, comme je l'ai dit précédemment le code est caca et je cherche toujours uen solution avec une variable "super" globale ...

n°487127
belgique
Posté le 14-08-2003 à 14:00:45  profilanswer
 

Code :
  1. $_GET["$c"]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Déclarer une variable globale à partir d'une chaine de caractère ?

 

Sujets relatifs
Variable dans tableau ...[MySQL] Compter les occurences d'une chaine ?
[Perl]Valider le format d'une chaine de caractères[C] Ajout d'un char en fin de chaine en boucle
Récupérer une variable dans un autre fichier ?Effacer une variable avec une pseudos-frames ?
Faire passer une variable de VBA à une page Word ?connaitre la largeur d'une chaine en java (ou plutôt jsp)
connaitre la largeur d'une chaine en javascriptexecution d'un script à partir d'1 autre url
Plus de sujets relatifs à : Déclarer une variable globale à partir d'une chaine de caractère ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR