Mam pętlę, która sprawdza błędy w moim kodzie PHP. Pierwotnie wyglądało to mniej więcej tak ...
foreach($results as $result) {
if (!$condition) {
$halt = true;
ErrorHandler::addErrorToStack('Unexpected result.');
}
doSomething();
}
if (!$halt) {
// do what I want cos I know there was no error
}
Działa to dobrze i dobrze, ale nadal przechodzi przez pętlę, mimo że po jednym błędzie nie musi. Czy jest sposób na wyjście z pętli?
Jak stwierdzono w innych postach, możesz użyć słowa kluczowego break. Jedną rzeczą, o której zasugerowano, ale nie wyjaśniono, jest to, że słowo kluczowe może przyjmować wartość liczbową, aby powiedzieć PHP, z ilu poziomów ma wyjść.
Na przykład, jeśli masz trzy pętle foreach zagnieżdżone w sobie, próbując znaleźć jakąś informację, możesz zrobić „break 3”, aby wydostać się ze wszystkich trzech zagnieżdżonych pętli. Będzie to działać dla struktur „for”, „foreach”, „while”, „do-while” lub „switch”.
źródło
break;
pozostawia pętlę.continue;
pomija dowolny kod do końca tej pętli i przechodzi do następnej pętli, o ile warunek jest nadal prawdziwy.źródło
Możesz użyć słowa kluczowego break .
źródło
Wszystkie te odpowiedzi są dobre, ale chciałbym zasugerować jeszcze jedną, która moim zdaniem jest lepszym standardem kodu. Możesz zdecydować się na użycie flagi w warunku pętli, która wskazuje, czy kontynuować pętlę i unikać używania
break
wszystkiego razem.Uważam, że jest to lepsza praktyka kodowania, ponieważ nie zależy od
break
używanego zakresu . Zamiast tego definiujesz zmienną, która wskazuje, czy przerwać określoną pętlę. Jest to przydatne, gdy masz wiele pętli, które mogą być zagnieżdżone lub sekwencyjne lub nie.źródło
źródło