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 :

fatal error avec la fonction eval()


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Points : 2
    Points
    2
    Par défaut fatal error avec la fonction eval()
    Bonjour,

    J'ai un souci que je ne comprend pas :

    ceci marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    foreach($element as $key => $value)
    {
    $condition="...";//je détermine la condition
    if($condition){
    continue;
    }
    //mon code...
    }
    Mais ceci ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    foreach($element as $key => $value)
    {
    $condition="...";//je détermine la condition
    if($condition){
    eval("continue;");
    }
    //mon code...
    }
    Je suis bien dans une boucle, l'instruction ne marche pas si je la mets dans un eval()
    J'ai l'erreur : Fatal error: Cannot break/continue level in...

    Vous avez une idée ?

    Merci.

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    A vue de nez, je dirais qu'il considère tout ce qui se trouve dans le eval comme une fonction. Et donc le continue dans le eval ne "voit" pas la boucle qui se trouve autour.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 28
    Points : 44
    Points
    44
    Par défaut
    eval("continue;");

    Je ne connais pas cette fonction mais le problème vient sans doute de là. Fait escaper ce caractère, mais je ne crois pas que t'en aie vraiment de besoin... Mais je ne suis pas familiariser avec cette fonction...

  4. #4
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci pour vos réponses,

    eval() semble pourtant bien interpréter le "continue" vu le message d'erreur.
    Mais je pense effectivement qu'il ne voit pas la boucle...
    Je n'ai pas d'autre piste...

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Mais pourquoi veux-tu absolument passer par eval() ?

  6. #6
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    en fait je passe par une class qui gère les actions à effectuer selon les cas,
    et une méthode peut renvoyer une fonction php ou une instruction.
    J'ai simplifié le code dans mon post, le code c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if($MyFieldManager->function) eval($MyFieldManager->function);
    //ici $MyFieldManager->function ="continue;"

Discussions similaires

  1. Fatal error avec les stdClass
    Par sebcrak dans le forum Langage
    Réponses: 4
    Dernier message: 29/10/2008, 23h02
  2. VBS syntax error avec la fonction PivotCache d'Excel
    Par speedking78 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/02/2008, 14h44
  3. Probleme avec la fonction eval()
    Par ludobado dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 07/03/2007, 22h28
  4. Réponses: 2
    Dernier message: 30/08/2006, 15h08
  5. Parsage avec la fonction eval
    Par alain31tl dans le forum Langage
    Réponses: 12
    Dernier message: 23/11/2005, 15h27

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