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 :

Structure : l'utilisation du vilain goto


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2004
    Messages : 28
    Par défaut Structure : l'utilisation du vilain goto
    Bonjour à tous,

    Rangez les sulfateuses et les bazookas je ne voulais pas dire "goto" ! Je viens en paix !

    J'aimerai juste avoir quelques avis sur la vilaine structure qu'est le goto.

    En ce moment je suis souvent confrontée à ce genre de structure à transposer.

    Nom : Drawing4.jpg
Affichages : 95
Taille : 6,7 Ko

    Il y a plusieurs façons de gérer le problème mais je suis bien tentée à chaque fois de faire une "horreur" de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if(!$condition){
        actions_qui_rendent_la_condition_vraie();
        goto suite;
    } else {
        suite:
        la_suite_des_operations();
    }
    Mais pourquoi donc ? Je trouve cela plus clair à la relecture car je reste plus proche de la structure originale et on peut s'appuyer sur le schéma d'origine quand il faut reprendre le code (précision : la structure originale est bien sûr légèrement plus tordue)

    D'où la question, comment remplacer le vilain goto sans rendre le code trop indigeste ?
    Le vilain goto est-il utilisé à bon escient dans ce cas là ?
    42 ?
    Merci d'avance pour vos avis éclairés et .. pacifiques !

    Ps: j'exclue bien sur de base un code de type if(!condition) { action; } suite du script; qui collerai avec l'exemple, mais l'exemple est simplifié, il suffit d'imaginer qu'on ne peut pas forcément rendre la condition vraie.

  2. #2
    Membre Expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Par défaut
    Ps: j'exclue bien sur de base un code de type if(!condition) { action; } suite du script; qui collerai avec l'exemple, mais l'exemple est simplifié .
    Ben justement, il va nous falloir la version un peu plus compliqué pour te dire comment on ferait, parce que là c'est exactement ce qu'il faudrait appliquer.

  3. #3
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2004
    Messages : 28
    Par défaut
    Désolée, j'ai édité mon premier message juste avant ta réponse, me rendant compte que ce n'était pas clair.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if(!$condition){
        //actions pour rendre la condition vraie, qui n'aboutissent pas forcément.
        //S'il y a possibilité d'aboutir 
        goto suite;
       //si c'est toujours pas bon il n'y a plus rien à faire.
    } else {
        suite:
        la_suite_des_operations();
    }

  4. #4
    Membre Expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Par défaut
    Très simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if (!$condition) {
        $condition = actionsQuiTententDeRendreLaConditionVraie();
        if (!$condition) {
            throw new Exception('La condition devrait être vrai');
            // Ou exit, ou autre chose qui signifie l'arrêt du script
        }
    }
     
    // Après, la suite !.

  5. #5
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2004
    Messages : 28
    Par défaut
    Mouarf, quand j'ai le nez dedans, j'ai le nez dedans et pas ailleurs



    Merci !

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/07/2010, 15h10
  2. Utilisation d'un goto dans un web service
    Par VonDutch4520 dans le forum Services Web
    Réponses: 4
    Dernier message: 09/07/2010, 17h54
  3. mode structure et utilisation
    Par malkie dans le forum 4D
    Réponses: 6
    Dernier message: 17/06/2008, 18h25
  4. [MySQL] Fonction message privé (structure et utilisation)
    Par Pa2pseudo dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 10/03/2008, 10h37
  5. utilisation d'une structure
    Par charonDZenfer dans le forum C++
    Réponses: 8
    Dernier message: 23/08/2004, 17h21

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