Was versteht man in PHP unter einer Zahl nach „break“ oder „continue“?

Lesezeit: 4 Minuten

Benutzer-Avatar
kn3l

Könnte jemand bitte anhand von Beispielen erklären, was mit Schleife gemeint ist break 2 oder continue 2 bei PHP? Was heißt wann break oder continue folgt eine Zahl?

Benutzer-Avatar
Ihr gesunder Menschenverstand

$array = array(1,2,3);
foreach ($array as $item){
  if ($item == 2) {
    break;
  }
  echo $item;
}

gibt “1” aus, weil die Schleife war gebrochen für immer, bevor echo “2” drucken konnte.

$array = array(1,2,3);
foreach ($array as $item){
  if ($item == 2) {
    continue;
  }
  echo $item;
}

Ausgänge 13 weil die zweite Iteration war bestanden

$numbers = array(1,2,3);
$letters = array("A","B","C");
foreach ($numbers as $num){
  foreach ($letters as $char){
    if ($char == "C") {
      break 2; // if this was break, o/p will be AB1AB2AB3
    }
    echo $char;
  }
  echo $num;
}

Ausgänge AB durch break 2, was bedeutet, dass beide Aussagen recht früh gebrochen wurden. Wenn das nur gerecht wäre breakwäre die Ausgabe gewesen AB1AB2AB3.

$numbers = array(1,2,3);
$letters = array("A","B","C");
foreach ($numbers as $num){
  foreach ($letters as $char){
    if ($char == "C") {
      continue 2;
    }
    echo $char;
  }
  echo $num;
}

wird ausgegeben ABABABdurch continue 2: Die äußere Schleife wird jedes Mal durchlaufen.

Mit anderen Worten, continue stoppt die Ausführung der aktuellen Iteration, lässt aber eine andere laufen, während break stoppt die ganze Anweisung vollständig.
Das können wir also ausschließen continue gilt nur für die Schleifen, wohingegen break kann in anderen Anweisungen verwendet werden, wie z switch.

Eine Zahl steht für die Anzahl von verschachtelt Aussagen betroffen.
wenn es 2 verschachtelte Schleifen gibt, break in der inneren bricht die innere (jedoch macht es sehr wenig Sinn, da die innere Schleife in der nächsten Iteration der äußeren Schleife erneut gestartet wird). break 2 in der inneren Schleife werden beide brechen.

Die Zahl sagt nur “aus wie vielen Zielfernrohren herausgesprungen werden soll”

<?php
for($i = 0; $i < 10; ++$i) {
    for($j = 0; $j < 10; ++$j) {
        break 2;
    }
}

$i und $j werden 0 sein

Zitieren das Handbuch:

Continue akzeptiert ein optionales numerisches Argument, das angibt, wie viele Ebenen von umschließenden Schleifen bis zum Ende übersprungen werden sollen.

gleiches gilt für die pause.

  • Ich bevorzuge Ihre Antwort, einfach weil sie kurz und auf den Punkt gebracht ist.

    – n8jadams

    6. August 2019 um 16:22 Uhr

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

<?php
$arr = array('one', 'two', 'three', 'four', 'stop', 'five');
while (list(, $val) = each($arr)) {
    if ($val == 'stop') {
        break;    /* You could also write 'break 1;' here. */
    }
    echo "$val<br />\n";
}

/* Using the optional argument. */

$i = 0;
while (++$i) {
    switch ($i) {
    case 5:
        echo "At 5<br />\n";
        break 1;  /* Exit only the switch. */
    case 10:
        echo "At 10; quitting<br />\n";
        break 2;  /* Exit the switch and the while. */
    default:
        break;
    }
}
?>

Weitere Beispiele für Unterbrechung

fortsetzen akzeptiert ein optionales numerisches Argument, das angibt, wie viele Ebenen von umschließenden Schleifen bis zum Ende übersprungen werden sollen. Der Standardwert ist 1, wodurch zum Ende der aktuellen Schleife gesprungen wird.

<?php
while (list($key, $value) = each($arr)) {
    if (!($key % 2)) { // skip odd members
        continue;
    }
    do_something_odd($value);
}

$i = 0;
while ($i++ < 5) {
    echo "Outer<br />\n";
    while (1) {
        echo "Middle<br />\n";
        while (1) {
            echo "Inner<br />\n";
            continue 3;
        }
        echo "This never gets output.<br />\n";
    }
    echo "Neither does this.<br />\n";
}
?>

Weitere Beispiele für fortsetzen

Benutzer-Avatar
Shakti Singh

break : die innerste Schleife unterbrechen (Ausstieg aus der Schleife)

break 2 : Brechen Sie die 2 Schleifen der Verschachtelungsebene (Verlassen der 2 verschachtelten Schleifen)

Continue : Erzwingt die Schleife für die nächste Iteration, von wo aus sie verwendet wird, ohne den Rest des Schleifencodes auszuführen

Continue 2: Erzwingt die Schleife für die nächsten 2 Iterationen, von wo aus sie verwendet wird, ohne den Rest des Schleifencodes auszuführen

Verlassen Sie die Schleife, wenn wir uns begegnen $array Wert 5 sein

 break
    $array(4,5,8);
    for ($i=0 ;$i < 10 $i ++)
    {
        if ($array[$i]==5)
        {
          break;
        }
    }

Pause (n)

Verlassen Sie beide Schleifen, wenn wir auf den Wert 5 in $array stoßen;

for ($i=0 ;$i < 10 $i ++)
  {
    for($j=0; $j <10; $j++)
     {
            if ($array[$i][$j]==5)
            {
              break 2;
            }
     }
 }

fortsetzen

Druckt die Nachricht, wenn der Wert 5 ist;

for($i=0; $i<10; $i++)
{
   if ($array[$i] != 5)
   { 
     continue;// will reach at the first line from here which is for($i=0;.....
   }
   echo 'This is five';
}

}

1323280cookie-checkWas versteht man in PHP unter einer Zahl nach „break“ oder „continue“?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy