IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Fonctionnement de la fonction "eval" [PHP 5.0]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 14
    Points : 14
    Points
    14
    Par défaut Fonctionnement de la fonction "eval"
    Bonjour à tous,

    J'ai parcouru le forum à la recherche d'autres sujets sur la fonction eval(), et il y en a !
    Sauf que la plupart sont liés une utilisation avancée, à mes yeux, de la fonction eval(), là où je souhaite juste en comprendre le fonctionnement.

    Le test basique que je fais est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $output = "";
    $boucleFor = eval(file_get_contents("boucle.html"));
    $output = "Utilisation de la fonction eval : " . $boucleFor;
    echo $output;
    Où le fichier "boucle.html" comprend une simple boucle "for" qui affiche des chiffres de 1 à 10.

    Tout fonctionne, à ceci près que le résultat de ma boucle s'affiche AVANT la phrase, alors que je souhaiterais qu'elle s'affiche APRES.
    c'est à dire que j'obtiens

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    012345678910Utilisation de la fonction eval :
    alors que je voudrais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Utilisation de la fonction eval : 012345678910
    L'appel à la fonction eval() signifie-t-il forcément que l'on renvoi le résultat de l'exécution ?
    Est-il possible de conserver le résultat d'un eval dans une variable, comme ce que j'essaie de faire ?

    Merci d'avance si vous avez des réponses.

  2. #2
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    Si eval exécute une chaîne comme un script PHP, il est normal qu'il l'affiche avant...
    Pour l'avoir après suffit de faire :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "Utilisation de la fonction eval : " . eval(file_get_contents("boucle.html"));
    -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
    Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
    Pensez également à cocher

    Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

    Dimension Internet

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 14
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par blueice Voir le message
    Si eval exécute une chaîne comme un script PHP, il est normal qu'il l'affiche avant...
    Merci pour la réponse, d'autant que c'est spécifié dans le manuel.
    Pour autant, je n'avais pas percuté.

    Encore merci.

+ Répondre à la discussion
Cette discussion est résolue.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo