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

  FORUM HardWare.fr
  Programmation

  [Php] fonction eval() : qui peut m'expliquer ce résultat?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Php] fonction eval() : qui peut m'expliquer ce résultat?

n°103470
Thocan
La loi du silence
Posté le 22-02-2002 à 10:50:27  profilanswer
 

Voilà, j'essaie d'utiliser eval() dans mon code.
Je créée un string avec une boucle "for"
-----------------------------
$str = "TraitementCra(\$Month,\$Year,\$nom,\$prenom,";
 
for($l=1;$l<15;$l++) {
 for($k=1;$k<32;$k++) {
             $str .= "$J".$k."AMP".$l.",";
             $str .= "$J".$k."PMP".$l.",";
 }
}
 
$str .= "\$Day)";
-----------------------------
Puis avec eval()
 
eval( "\$str = \"$str\";" );
-----------------------------
Quand je fais un echo, j'obtiens :
TraitementCra(02,2002,zer,zer,1AMP1,1PMP1,2AMP1,2PMP1,3AMP1,3PMP1,4AMP1...
 
Bref, touts les '$J' ont disparu...
 
Pourquoi :??:

 

[jfdsdjhfuetppo]--Message édité par Thocan--[/jfdsdjhfuetppo]

mood
Publicité
Posté le 22-02-2002 à 10:50:27  profilanswer
 

n°103511
dropsy
et bonne chance surtout...
Posté le 22-02-2002 à 12:05:48  profilanswer
 

qd tu fais ça:
$str .= "$J".$k."AMP".$l.",";  
 
les $J sont évalués
en effet quand tu mets une variable dans une string délimitées par des doubles quotes ", cette variable est évaluée puis "insérée" dans la string.
Pour éviter cela, utilise des simples quotes ' à la place de "
 
A+

n°103512
Mara's dad
Yes I can !
Posté le 22-02-2002 à 12:06:22  profilanswer
 

Et y vaut quoi $J dans ton truc ? ? ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°103521
dropsy
et bonne chance surtout...
Posté le 22-02-2002 à 12:13:02  profilanswer
 

je pense qu'il veut créer dynamiquement des noms de variable, ie récupérer $J1AMP1... et comme $J n'est pas définit, il récupére 1AMP, non?
 
si tel est le cas, je lui conseillerai un un ptit tour sur be.php.net section manuel, nom dynamique de variable...

n°103526
Thocan
La loi du silence
Posté le 22-02-2002 à 12:28:31  profilanswer
 

dropsy a écrit a écrit :

je pense qu'il veut créer dynamiquement des noms de variable, ie récupérer $J1AMP1... et comme $J n'est pas définit, il récupére 1AMP, non?
 
si tel est le cas, je lui conseillerai un un ptit tour sur be.php.net section manuel, nom dynamique de variable...  




 
Vi c exactement ça!  :)  
Je vais voir sur le site en question...

n°103527
Mara's dad
Yes I can !
Posté le 22-02-2002 à 12:36:39  profilanswer
 

Je pensais qu'il connaissais le truc le l'interprétation des variables dans les chaînes "..." puisqu'il pense à faire çà :
$str = "TraitementCra(\$Month,\$Year,\$nom,\$prenom,";  
 
? ? ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°103528
Profil sup​primé
Posté le 22-02-2002 à 12:38:57  answer
 

$tmp = $j."AMP1";
si $j vaut "TE", $tmp vaut donc "TEAMP1"
ensuite pour recuperer la valeur de la variable $TEAMP1 il te suffit d'utiliser $$tmp (avec deux $)

n°103534
Thocan
La loi du silence
Posté le 22-02-2002 à 12:51:33  profilanswer
 

Donc, j'ai réussit à écrire mes deux strings.
echo $str; vaut "function toto($A,$B...) { blabla };"
echo $str1; vaut "toto(arthur,jean,...);"
 
Bref, j'ai donc bien un string qu définit ma fonction et l'autre qui la lance.
 
Mais ensuite comment faire en sorte que le php l'interprète?
avec eval(), sans doute mais...
J'ai essayé :
$fonction = "return(".$str." );";
mais ça me sort une erreur :
Parse error: parse error in c:\program files\easyphp\www\html\Tmis\Formulaires\cracra.php(65) : eval()'d code on line 1
 :(

n°103539
dropsy
et bonne chance surtout...
Posté le 22-02-2002 à 12:55:14  profilanswer
 

eval($str);
mais $str doit se terminer avec un ;

n°103555
Thocan
La loi du silence
Posté le 22-02-2002 à 13:49:37  profilanswer
 

c pourtant le cas... :(

mood
Publicité
Posté le 22-02-2002 à 13:49:37  profilanswer
 

n°103561
Thocan
La loi du silence
Posté le 22-02-2002 à 14:04:08  profilanswer
 

Il cherche bien la fonction traitementcra().
Donc mon deuxième string fonctionne très bien.
 
Mais apparemment, le premier n'est pas reconnu.

n°103594
dropsy
et bonne chance surtout...
Posté le 22-02-2002 à 15:01:52  profilanswer
 

http://be.php.net/manual/fr/function.eval.php
la première remarque des utilisateurs correspond à ton cas, non?
sinon, si tu pouvais donner exactement la ligne où il y a le eval avec la valeur des différents paramètres, parce que je me perd un :pt1cable:

n°103705
Thocan
La loi du silence
Posté le 22-02-2002 à 16:21:41  profilanswer
 

Vi, je connais cette page par coeur...
J'ai tout essayé mais rien ne fonctionne...


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

  [Php] fonction eval() : qui peut m'expliquer ce résultat?

 

Sujets relatifs
javascript: fonction getElementByIdPHP: choisir la db???
Comment envoyer les résultat de ReportSmith via E-mail sous Delphi[PHP] Compression Zlib et Register Globals Off...
Php : la fonction eval()...[PHP] javascript ej c pas.. chui desesperé
Pgp : pb de variable et de fonction[PHP] modifier l'affichage des resultats....
Plus de sujets relatifs à : [Php] fonction eval() : qui peut m'expliquer ce résultat?


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