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

 


Dernière réponse
Sujet : [Php] fonction eval() : qui peut m'expliquer ce résultat?
Thocan Vi, je connais cette page par coeur...
J'ai tout essayé mais rien ne fonctionne...

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Thocan Vi, je connais cette page par coeur...
J'ai tout essayé mais rien ne fonctionne...
dropsy 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:
Thocan Il cherche bien la fonction traitementcra().
Donc mon deuxième string fonctionne très bien.
 
Mais apparemment, le premier n'est pas reconnu.
Thocan c pourtant le cas... :(
dropsy eval($str);
mais $str doit se terminer avec un ;
Thocan 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
 :(
$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 $)
Mara's dad 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,";  
 
? ? ?
Thocan

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

dropsy 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...
Mara's dad Et y vaut quoi $J dans ton truc ? ? ?
dropsy 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+
Thocan 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]


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)