185 votes

Différence entre break et continue en PHP?

Quelle est la différence entre break et continue en PHP ?

548voto

deceze Points 200115

break termine complètement une boucle, continue raccourcit simplement l'itération actuelle et passe à l'itération suivante.

while ($foo) {   <--------------------┐
    continue;    --- revient ici -----┘
    break;       ----- saute ici -----┐
}                                     |
                 <--------------------┘

Cela serait utilisé de la manière suivante :

while ($droid = searchDroids()) {
    if ($droid != $theDroidYoureLookingFor) {
        continue; // ..la recherche avec le prochain droïde
    }

    $foundDroidYoureLookingFor = true;
    break; // ..met fin à la recherche
}

57 votes

La mauvaise utilisation de ces fonctions donne lieu à ceci : flickr.com/photos/24973901@N04/2762458387

7 votes

J'adore cette réponse! Cela me rappelle la recommandation de WP.org sur les Conditions Yoda : make.wordpress.org/core/handbook/coding-standards/php/…

4 votes

Cela fait 7 ans depuis cette réponse mais cela vaut la peine de dire ceci. comme dans php documents à partir de v4 break et continue sont les mêmes dans switch. ils sortent tous les deux de switch. pour sortir de la boucle extérieure, utilisez continue 2.

51voto

Hinek Points 4598

Break sort de la boucle dans laquelle vous vous trouvez, continue commence immédiatement le cycle suivant de la boucle.

Exemple:

$i = 10;
while (--$i)
{
    if ($i == 8)
    {
        continue;
    }
    if ($i == 5)
    {
        break;
    }
    echo $i . "\n";
}

va produire:

9
7
6

1 votes

+1; la même chose que dans pratiquement toutes les autres langues qui utilisent ces mots-clés.

0 votes

+1; juste une explication simple et un bon exemple, même si while(--$i) est un peu difficile pour les débutants.

0 votes

@Omeid Je suis d'accord, c'est délicat ... mais je n'étais pas sûr de la syntaxe de la boucle for de php et j'étais trop paresseux pour la chercher

19voto

SW4 Points 26395

BREAK:

break termine l'exécution de la structure for, foreach, while, do-while ou switch en cours.

CONTINUE:

continue est utilisé à l'intérieur des structures de boucle pour sauter le reste de l'itération de boucle en cours et continuer l'exécution à l'évaluation de la condition et ensuite le début de la prochaine itération.

Donc, en fonction de vos besoins, vous pouvez réinitialiser la position actuellement exécutée dans votre code à un niveau différent de l'imbrication actuelle.

Voir aussi ici pour un article détaillant Break vs Continue avec plusieurs exemples

16voto

Igor Parra Points 3858

Pour information :

Notez que en PHP, l'instruction switch est considérée comme une structure de boucle aux fins du continue.

0 votes

Je viens juste d'être mordu par cette "fonctionnalité". Comment puis-je continuer une boucle while basée sur des éléments découverts dans un cas de commutation?

1 votes

@MattBianco, vous utilisez continue 2 dans ces cas.

4voto

DGH Points 3284

Break met fin à la structure de boucle/contrôle en cours et passe à sa fin, peu importe le nombre de répétitions restantes de la boucle.

Continue passe au début de la prochaine itération de la boucle.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X