Unterschied zwischen Pause und Weiter in PHP?

169

Was ist der Unterschied zwischen breakund continuein PHP?

powtac
quelle

Antworten:

517

breakBeendet eine Schleife vollständig, continueverkürzt nur die aktuelle Iteration und fährt mit der nächsten Iteration fort.

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

Dies würde so verwendet werden:

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

    $foundDroidYoureLookingFor = true;
    break; // ..off the search
}
täuschen
quelle
56
Der Missbrauch dieser Funktionen führt dazu: flickr.com/photos/24973901@N04/2762458387
neokio
7
Ich liebe diese Antwort! Erinnern Sie mich an die Empfehlung von WP.org zu den Yoda-Bedingungen: make.wordpress.org/core/handbook/coding-standards/php/…
Bob Gregor
4
Es ist 7 Jahre nach dieser Antwort, aber es lohnt sich, dies zu sagen. wie in PHP-Dokumenten aus v4 breakund continuesind gleich in switch. beide verlassen den Schalter. um die äußere Schleife zu verlassen, wenn es für oder so verwendet wird continue 2.
Amin.Qarabaqi
@ BobGregor Derzeit kann dieser Teil unter make.wordpress.org/core/handbook/best-practices/…
Douwe de Haan
@deceze, dieses Beispiel mit Code ist schlecht. Sie weisen eine Variable zu, die nirgendwo verwendet wird. Die vorgeschlagene Bearbeitung war besser lesbar.
Tajni
49

break verlässt die Schleife, in der Sie sich befinden, und beginnt sofort mit dem nächsten Zyklus der Schleife.

Beispiel:

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

wird ausgegeben:

9
7
6
Hinek
quelle
1
+1; das gleiche wie in praktisch jeder anderen Sprache, die diese Schlüsselwörter verwendet.
Karl Knechtel
+1; Nur eine einfache Erklärung und ein gutes Beispiel, selbst Teig while(--$i)ist für Neulinge etwas schwierig.
@Omeid Ich stimme zu, dass es schwierig ist ... aber ich war mir nicht sicher über die For-Loop-Syntax von PHP und zu faul, um es
nachzuschlagen
Dies ist ein großartiges Beispiel!
Demuro1
1
Tolles Beispiel. (Das Zeilenecho $ i. "\ N" benötigt am Ende eine Halbspalte.)
user3563097
15

BRECHEN:

break beendet die Ausführung des Stroms für, foreach, while, do-while oder switch-Struktur.

FORTSETZEN:

continue wird in Schleifenstrukturen verwendet, um den Rest der aktuellen Schleifeniteration zu überspringen und die Ausführung bei der Bedingungsbewertung und dann am Beginn der nächsten Iteration fortzusetzen.

Je nach Bedarf können Sie die Position, die gerade in Ihrem Code ausgeführt wird, auf eine andere Ebene der aktuellen Verschachtelung zurücksetzen.

Siehe auch hier für eine artical Pause Detaillierung vs Fahren Sie mit einer Reihe von Beispielen

SW4
quelle
14

Für die Aufzeichnung:

Beachten Sie, dass in PHP die switch- Anweisung als Schleifenstruktur betrachtet wird, um fortzufahren .

Igor Parra
quelle
Ich wurde gerade von diesem "Feature" gebissen. Wie kann ich eine while-Schleife basierend auf den in einem Switch-Fall entdeckten Dingen fortsetzen?
MattBianco
1
@MattBianco, verwenden Sie continue 2in diesen Fällen.
Flaviovs
5

break wird verwendet, um aus der Schleifenanweisung herauszukommen, aber fahren Sie fort, indem Sie das Skript unter bestimmten Bedingungen stoppen und dann die Schleifenanweisung fortsetzen, bis das Ende erreicht ist.

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>";
}

Hoffe es kann dir helfen;

Joko Wandiro
quelle
4

Break beendet die aktuelle Schleifen- / Kontrollstruktur und springt zum Ende, unabhängig davon, wie oft sich die Schleife sonst wiederholt hätte.

Fahren Sie fort und springen Sie zum Anfang der nächsten Iteration der Schleife.

DGH
quelle
4

'continue' wird in Schleifenstrukturen verwendet, um den Rest der aktuellen Schleifeniteration zu überspringen und die Ausführung bei der Bedingungsbewertung und dann am Beginn der nächsten Iteration fortzusetzen.

'break' beendet die Ausführung des Stroms für, foreach, while, do-while oder Switch-Struktur.

break akzeptiert ein optionales numerisches Argument, das angibt, aus wie vielen verschachtelten umschließenden Strukturen herausgebrochen werden soll.

Überprüfen Sie die folgenden Links:

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

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

Ich hoffe es hilft..

Mahendra Liya
quelle
3

break stoppt die aktuelle Schleife (oder übergibt eine Ganzzahl, um anzugeben, von wie vielen Schleifen unterbrochen werden soll).

continue stoppt die aktuelle Iteration und startet die nächste.

Alex
quelle
2

breakverlässt die Schleife und continuestartet sofort den nächsten Zyklus der Schleife.

cspolton
quelle
2

Ich schreibe hier nichts Gleiches. Nur eine Änderungsprotokollnotiz aus dem PHP-Handbuch.


Changelog für weiter

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 für die 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.
quelle