Która instrukcja języka PHP przerywa bieżący przebieg pętli i powoduje przejście do jej następnego przebiegu?
A. continue
B. break
C. return
D. exit
Instrukcja continue w PHP służy właśnie do przerwania aktualnego przebiegu pętli i przejścia do następnej iteracji. To ważna różnica: pętla nie kończy się całkowicie, tylko pomija resztę kodu znajdującego się w bieżącym obiegu. Moim zdaniem to jedna z tych instrukcji, które bardzo często porządkują kod, jeśli użyje się ich rozsądnie. Przykładowo, gdy przetwarzasz tablicę użytkowników i chcesz pominąć konta nieaktywne, możesz sprawdzić warunek i użyć continue;, żeby nie wykonywać dalszych operacji dla takiego rekordu. W pętlach for, while, do while oraz foreach działa to bardzo praktycznie. Dobra praktyka jest taka, żeby continue stosować wtedy, gdy jasno poprawia czytelność algorytmu, a nie jako sposób na chaotyczne skakanie po kodzie. W PHP istnieje też wariant continue 2, używany przy pętlach zagnieżdżonych, który przechodzi do następnej iteracji pętli wyższego poziomu, ale trzeba z tym uważać, bo łatwo utrudnić późniejsze utrzymanie programu.
W tym pytaniu chodzi o bardzo konkretny mechanizm sterowania przebiegiem pętli, a nie o ogólne kończenie działania programu albo funkcji. Instrukcja break często myli się z continue, bo obie pojawiają się w pętlach i obie zmieniają normalny przepływ wykonania kodu. Różnica jest jednak zasadnicza: break przerywa całą pętlę i wykonanie programu przechodzi za jej blok, więc następne iteracje nie zostaną już uruchomione. Stosuje się ją na przykład wtedy, gdy znaleziono szukany element i dalsze sprawdzanie tablicy nie ma sensu. To nie jest przejście do kolejnego przebiegu, tylko wyjście z pętli. Instrukcja exit działa jeszcze szerzej, bo kończy wykonywanie całego skryptu PHP. Przydaje się czasem po krytycznym błędzie, po przekierowaniu HTTP albo gdy dalsze generowanie odpowiedzi nie powinno nastąpić, ale w zwykłej logice pętli używanie exit byłoby raczej toporne. Return również nie oznacza przejścia do następnej iteracji. W funkcji zwraca wynik i kończy jej działanie, a w pliku dołączanym może zakończyć wykonywanie tego pliku. Typowy błąd myślowy polega na tym, że wszystkie te instrukcje kojarzą się z przerwaniem czegoś. W programowaniu webowym trzeba jednak patrzeć precyzyjnie: continue przerywa tylko bieżącą iterację, break kończy pętlę, return wychodzi z funkcji, a exit zamyka cały skrypt. Z mojego doświadczenia najlepiej zapamiętać to na przykładzie filtrowania danych: jeśli rekord jest niepoprawny, pomijasz go przez continue i jedziesz dalej z następnym rekordem.