PHP Eval
Résolu/Fermé
Poil
-
16 juil. 2008 à 18:13
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 - 16 juil. 2008 à 19:14
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 - 16 juil. 2008 à 19:14
A voir également:
- PHP Eval
- Easy php - Télécharger - Divers Web & Internet
- \R php ✓ - Forum PHP
- Br php ✓ - Forum PHP
- Expert php - Télécharger - Langages
- Php echo image ✓ - Forum PHP
4 réponses
croy
Messages postés
453
Date d'inscription
samedi 19 janvier 2008
Statut
Membre
Dernière intervention
23 octobre 2012
114
16 juil. 2008 à 18:18
16 juil. 2008 à 18:18
Remplace donc
par
$myvar=eval('$foovar;');
par
$myvar=eval( $foovar . ";" );
croy
Messages postés
453
Date d'inscription
samedi 19 janvier 2008
Statut
Membre
Dernière intervention
23 octobre 2012
114
16 juil. 2008 à 18:30
16 juil. 2008 à 18:30
Pour clarifier ton test :
Et donne le résultat par un copié/collé
echo '1:' . $foovar . '<br />'; echo '2:' . eval ( $foovar . ';' ) . '<br />'; $myvar = eval( $foovar . ";" ); echo '3:' . $myvar;
Et donne le résultat par un copié/collé
croy
Messages postés
453
Date d'inscription
samedi 19 janvier 2008
Statut
Membre
Dernière intervention
23 octobre 2012
114
>
Poil
16 juil. 2008 à 18:51
16 juil. 2008 à 18:51
Je viens de consulter la doc de la fonction eval dont la valeur de retour est décrite par :
eval() retourne NULL sauf si return est appelée dans le code évalué, auquel cas la valeur passée à return est retournée. Dans le cas d'une erreur de syntaxe dans le code évalué, eval() retourne FALSE. Dans le cas d'une erreur fatale dans le code évalué, l'ensemble du script se terminera. En PHP 3, eval() ne retourne pas de valeur.
Essaye le code suivant :
après exécution la variable $monResultat contiendra le résultat (7).
Modifie donc ton script final pour inttégrer le résultat dans une variable passée à eval.
eval() retourne NULL sauf si return est appelée dans le code évalué, auquel cas la valeur passée à return est retournée. Dans le cas d'une erreur de syntaxe dans le code évalué, eval() retourne FALSE. Dans le cas d'une erreur fatale dans le code évalué, l'ensemble du script se terminera. En PHP 3, eval() ne retourne pas de valeur.
Essaye le code suivant :
$foovar = '3 + 4'; echo '1:' . $foovar . '<br />'; echo '2:' . eval ( '$monResultat=' . $foovar . ';' ) . '<br />'; echo '3:' . $monResultat;
après exécution la variable $monResultat contiendra le résultat (7).
Modifie donc ton script final pour inttégrer le résultat dans une variable passée à eval.
croy
Messages postés
453
Date d'inscription
samedi 19 janvier 2008
Statut
Membre
Dernière intervention
23 octobre 2012
114
16 juil. 2008 à 18:42
16 juil. 2008 à 18:42
Je comprends que ces 4 echos sont dans une boucle. Pour avancer pas à pas, ne passe qu'une seule fois dans la boucle et modifie ton code de test :
echo '1:' . $foovar . '<br />'; echo '2:' . eval ( $foovar . ';' ) . '<br />'; $myvar = eval( $foovar . ";" ); echo '3:' . $myvar . '<br />'; echo '4:'; var_dump( $PSYS_maxPerm ) ; echo '<br>'; echo '5:'; var_dump( $dbc_maxPerm ); echo '<br>'; echo '6:'; var_dump( $spoolrsv_maxPerm ); echo '<br>';
croy
Messages postés
453
Date d'inscription
samedi 19 janvier 2008
Statut
Membre
Dernière intervention
23 octobre 2012
114
16 juil. 2008 à 19:14
16 juil. 2008 à 19:14
S'il est nécessaire de te consoler, je suis aussi un C**. On peut aussi considérer que nous avons appris deux choses :
- le fonctionnement de eval
- l'importance de lire la doc.
- le fonctionnement de eval
- l'importance de lire la doc.
16 juil. 2008 à 18:24
Si je fais
1: echo $foovar.'<br />';
2: echo eval ($foovar . ';');
3: $myvar=eval( $foovar . ";" );
4: echo $myvar;
Ca me donne juste
1:
($PSYS_maxPerm - $dbc_maxPerm - $spoolrsv_maxPerm)
($PSYS_currentPerm - $dbc_currentPerm - $spoolrsv_currentPerm)
($PSYS_freePerm - $dbc_freePerm - $spoolrsv_freePerm)
($PSYS_skewedPerm - $dbc_skewedPerm - $spoolrsv_skewedPerm)
Cdt