Differenza tra pausa e continua in PHP?


Risposte:


517

breaktermina completamente un loop, continueabbrevia semplicemente l'attuale iterazione e passa alla successiva iterazione.

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

Questo sarebbe usato così:

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

    $foundDroidYoureLookingFor = true;
    break; // ..off the search
}

56
L'uso improprio di queste funzioni si traduce in questo: flickr.com/photos/24973901@N04/2762458387
neokio

7
Adoro questa risposta! Ricordami la raccomandazione di WP.org sulle condizioni di Yoda: make.wordpress.org/core/handbook/coding-standards/php/…
Bob Gregor

4
sono trascorsi 7 anni da questa risposta, ma vale la pena dirlo. come nei documenti php da v4 breake continuesono uguali in switch. entrambi escono dall'interruttore. per uscire dal circuito esterno se ne esiste l'uso continue 2.
Amin.Qarabaqi,

@BobGregor Attualmente quella parte può essere trovata su make.wordpress.org/core/handbook/best-practices/…
Douwe de Haan,

@deceze, questo esempio con il codice è negativo. Si assegna una variabile che non viene utilizzata da nessuna parte. La modifica suggerita era più leggibile.
Tajni,

49

break esce dal loop in cui ci si trova, continue inizia immediatamente con il ciclo successivo del loop.

Esempio:

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

produrrà:

9
7
6

1
+1; lo stesso di praticamente in ogni altra lingua che utilizza queste parole chiave.
Karl Knechtel,

+1; solo una semplice spiegazione e un buon esempio, anche l'impasto while(--$i)è un po 'complicato per i neofiti.

@Omeid sono d'accordo, è complicato ... ma non ero sicuro della sintassi for-loop di php e di essere pigro a cercarlo
Hinek,

Questo è un ottimo esempio!
demuro1,

1
Grande esempio (la riga echo $ i. "\ N" alla fine richiede un punto
virgola

16

ROMPERE:

break termina l'esecuzione della corrente per, foreach, while, do-while o switch struttura.

CONTINUA:

continue viene utilizzato all'interno delle strutture di loop per saltare il resto dell'iterazione di loop corrente e continuare l'esecuzione alla valutazione delle condizioni e quindi all'inizio dell'iterazione successiva.

Pertanto, a seconda delle esigenze, è possibile ripristinare la posizione attualmente in esecuzione nel codice a un livello diverso dell'annidamento corrente.

Inoltre, vedi qui per un dettaglio artistico Break vs Continue con un numero di esempi


14

Per il record:

Si noti che in PHP l' istruzione switch è considerata una struttura ciclica ai fini di continue .


Sono stato morso da questa "caratteristica". Come posso continuare un ciclo while basato sulle cose scoperte in una custodia?
MattBianco,

1
@MattBianco, si usa continue 2in quei casi.
Flaviov

5

break usato per uscire dall'istruzione loop, ma continua a fermare lo script in condizioni specifiche e quindi continua l'istruzione loop fino alla fine.

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

Spero che ti possa aiutare;


4

Break termina l'attuale loop / struttura di controllo e salta alla fine, indipendentemente da quante altre volte il loop si sarebbe ripetuto.

Continua salta all'inizio della prossima iterazione del loop.


4

'continue' viene utilizzato all'interno delle strutture di loop per saltare il resto dell'iterazione di loop corrente e continuare l'esecuzione alla valutazione della condizione e quindi all'inizio dell'iterazione successiva.

'break' termina l'esecuzione della corrente per, foreach, while, do-while o switch struttura.

break accetta un argomento numerico facoltativo che indica il numero di strutture racchiuse nidificate da cui eseguire il breakout.

Dai un'occhiata ai seguenti link:

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

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

Spero che sia d'aiuto..


3

break interromperà il loop corrente (o passerà un numero intero per dirgli da quanti loop interrompere).

continue interromperà l'iterazione corrente e avvierà la successiva.


2

breakuscirà dal loop, mentre continueinizierà immediatamente il ciclo successivo del loop.


2

Non sto scrivendo niente dello stesso qui. Solo una nota di log dal manuale di PHP.


Log delle modifiche per continuare

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.

Log delle modifiche per una pausa

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.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.