Différence entre pause et continue en PHP?

169

Quelle est la différence entre breaket continueen PHP?

Powtac
la source

Réponses:

517

breaktermine complètement une boucle, continueraccourcit simplement l'itération actuelle et passe à l'itération suivante.

while ($foo) {   <--------------------┐
    continue;    --- goes back here --┘
    break;       ----- jumps here ----┐
}                                     |
                 <--------------------┘

Cela serait utilisé comme ceci:

while ($droid = searchDroids()) {
    if ($droid != $theDroidYoureLookingFor) {
        continue; // ..the search with the next droid
    }

    $foundDroidYoureLookingFor = true;
    break; // ..off the search
}
déceler
la source
56
Une mauvaise utilisation de ces fonctions se traduit par ceci: flickr.com/photos/24973901@N04/2762458387
neokio
7
J'adore cette réponse! Rappelez-moi la recommandation de WP.org sur les conditions Yoda: make.wordpress.org/core/handbook/coding-standards/php/…
Bob Gregor
4
c'est 7 ans après cette réponse mais cela vaut la peine de le dire. comme dans les documents php de la v4 breaket continuesont les mêmes dans switch. les deux sortent du commutateur. pour sortir de la boucle externe s'il y a pour ou ainsi utiliser continue 2.
Amin.Qarabaqi
@BobGregor Actuellement, cette partie peut être trouvée sur make.wordpress.org/core/handbook/best-practices/…
Douwe de Haan
@deceze, cet exemple avec du code est mauvais. Vous affectez une variable qui n'est utilisée nulle part. La modification suggérée était plus lisible.
Tajni
49

break quitte la boucle dans laquelle vous vous trouvez, continue commence immédiatement avec le cycle suivant de la boucle.

Exemple:

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

affichera:

9
7
6
Hinek
la source
1
+1; le même que dans pratiquement toutes les autres langues qui utilisent ces mots-clés.
Karl Knechtel
+1; juste une explication simple et un bon exemple, même la pâte while(--$i)est un peu délicate pour les débutants.
@Omeid Je suis d'accord, que c'est délicat ... mais je n'étais pas sûr de la syntaxe for-loop de php et
trop
Ceci est un excellent exemple!
demuro1
1
Excellent exemple. (La ligne echo $ i. "\ N" a besoin d'un point-virgule à la fin.)
user3563097
16

PAUSE:

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

CONTINUER:

continue est utilisé dans les structures en boucle pour ignorer le reste de l'itération de boucle en cours et continuer l'exécution à l'évaluation de la condition, puis au début de l'itération suivante.

Ainsi, en fonction de vos besoins, vous pouvez réinitialiser la position en cours d'exécution dans votre code à un niveau différent de l'imbrication actuelle.

Voir également ici pour un détail artistique Break vs Continue avec un certain nombre d'exemples

SW4
la source
14

Pour mémoire:

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

Igor Parra
la source
J'ai juste été mordu par cette "fonctionnalité". Comment puis-je continuer une boucle while basée sur des choses découvertes dans un cas de commutateur?
MattBianco
1
@MattBianco, vous utilisez continue 2dans ces cas.
flaviovs
5

break utilisé pour sortir de l'instruction de boucle, mais continuez simplement, arrêtez le script à une condition spécifique, puis continuez la boucle jusqu'à la fin.

for($i=0; $i<10; $i++){
    if($i == 5){
        echo "It reach five<br>";
        continue;
    }
    echo $i . "<br>";
}

echo "<hr>";

for($i=0; $i<10; $i++){
    if($i == 5){
         echo "It reach end<br>";
         break;
    }
    echo $i . "<br>";
}

J'espère que cela peut vous aider;

Joko Wandiro
la source
4

Break termine la boucle / structure de contrôle actuelle et passe à la fin de celle-ci, peu importe combien de fois la boucle se serait répétée autrement.

Continuer passe au début de l'itération suivante de la boucle.

DGH
la source
4

'continue' est utilisé dans les structures en boucle pour ignorer le reste de l'itération de boucle en cours et continuer l'exécution à l'évaluation de la condition, puis au début de l'itération suivante.

'break' met fin à l'exécution de la structure actuelle for, foreach, while, do-while ou switch.

break accepte un argument numérique optionnel qui lui indique le nombre de structures englobantes imbriquées à séparer.

Consultez les liens suivants:

http://www.php.net/manual/en/control-structures.break.php

http://www.php.net/manual/en/control-structures.continue.php

J'espère que ça aide..

Mahendra Liya
la source
3

break arrêtera la boucle actuelle (ou passera un entier pour lui indiquer le nombre de boucles à rompre).

continue arrêtera l'itération en cours et démarrera la suivante.

Alex
la source
2

breakquittera la boucle, tandis que continuedémarrera immédiatement le cycle suivant de la boucle.

cspolton
la source
2

Je n'écris rien de la même chose ici. Juste une note du journal des modifications du manuel PHP.


Changelog pour continuer

Version Description

7.0.0 - continue outside of a loop or switch control structure is now detected at compile-time instead of run-time as before, and triggers an E_COMPILE_ERROR.

5.4.0   continue 0; is no longer valid. In previous versions it was interpreted the same as continue 1;.

5.4.0   Removed the ability to pass in variables (e.g., $num = 2; continue $num;) as the numerical argument.

Changelog pour la pause

Version Description

7.0.0   break outside of a loop or switch control structure is now detected at compile-time instead of run-time as before, and triggers an E_COMPILE_ERROR.

5.4.0   break 0; is no longer valid. In previous versions it was interpreted the same as break 1;.

5.4.0   Removed the ability to pass in variables (e.g., $num = 2; break $num;) as the numerical argument.
Muhammed Shihabudeen Labba A
la source