Jak przerwać wykonywanie pętli (for, PHP Skrypty


[PHP] Jak przerwać wykonywanie pętli (for, foreach, while, do...while)?

0x01 graphic

Chcesz przerwać wykonywanie pętli (for, foreach, while, do...while) aby bez oczekiwania na skończenie iteracji wykonać kolejne polecenia programu. Może to znacznie przyśpieszyć działanie skryptu.

0x01 graphic

Wszędzie tam, gdzie w pętli będziesz sprawdzać jakieś warunki, z pewnością przyda Ci się metoda aby z pętli wyjść szybciej niż skończy się ona wykonywać w naturalny sposób.

PHP pozwala przerywać pętle aby wychodzić z nich natychmiast i wykonywać dalszą część programu. Można nie tylko wyjść z pętli aktualnej, ale również z pętli zagnieżdżonych, gdy jest ich więcej. Zobacz jak to zrobić.

<?

for ($i=1;$i<=100;$i++) {

echo "test ";

if ($i==5) break;

}

?>

Napis "test" pojawi się dokładnie 5 razy. Mimo tego, że pętla przewiduje 100 iteracji, wyjdziemy już po piątej za pomocą polecenia break.

Oczywiście przykład jest prosty i od razu można założyć, że pętla ma mieć tylko pięć przebiegów. W pętlach while również można zbudować warunek, który sprawdzi kiedy pętla powinna być przerwana. Ale są sytuacje gdy ilość tych warunków byłaby duża i wygodniej sprawdzić je w pętli, aby natychmiast z niej uciec. Szczególnie gdy pętli jest wiele.

Przerwanie pętli to nieraz ogromne oszczędności. Zamiast kilkudziesięciu tysięcy iteracji w dużych pętlach, może ona zostać przerwana już po kilkuset przebiegach. Program nie traci czasu na wykonywanie tych samych fragmentów kodu gdy nie jest to już konieczne.

Polecenie break można wywołać także z liczbą określającą z ilu pętli chcemy uciec i przejść dalej. W poniższym przykładzie wychodzimy z dwóch pętli, więc po break podajemy liczbę 2.

<?

while ($i<1000) {

for ($i=1;$i<100;$i++) {

echo "test ";

if ($i==5) break 2;

}

}

?>

Wynik jest identyczny - pięć napisów "test". Gdyby po break nie było liczby 2, wtedy pętla while trwałaby nieprzerwanie i wypisywała wciąż napis "test" na ekranie.

<?

$t[]=7;

$t[]=2;

$t[]=3;

$t[]=4;

$t[]=8;

$t[]=6;

$t[]=1;

$t[]=5;

$t[]=9;

for ($i=0;$i<count($t);$i++) {

if ($t[$i]==3) {echo $i; break;}

}

?>

Programik jest prosty, ale dobrze pokazuje sens stosowania polecenia break. Chcemy dowiedzieć się, w którym elemencie tablicy znajduje się cyfra 3 (zakładając, że numery nie powtarzają się). Pętla for jest wygodna to przejścia przez całą tablicę, więc po kolei sprawdzamy czy kolejny element nie zawiera liczby 3.

Gdy tylko wystąpi trójka wypisujemy na ekran numer określający element tablicy z cyfrą 3. Dalsze przeszukiwanie tablicy nie ma już sensu, więc czym prędzej pętlę opuszczamy za pomocą break aby zaoszczędzieć na niepotrzebnym już przechodzeniu przez dalsze porównania w kolejnych iteracjach.



Wyszukiwarka

Podobne podstrony:
jak przeliczyc biorytm dowolnego dnia, PHP Skrypty
Jak usunąć znaki końca linii, PHP Skrypty
Jak wygenerować niepowtarzalny identyfikator użytkownika, PHP Skrypty
Jak stworzyć prostą księgę gości, PHP Skrypty
Jak zamienić tekst na grafikę, PHP Skrypty
Jak dołączyć do stron napisanych w PHP skrypty CGI napisane np. w PERLu, PHP Skrypty
Jak zainstalować popularne forum phpBB, PHP Skrypty
Jak zabezpieczyć się przed wielokrotnym wykonywaniem kodu po odświeżeniu strony, PHP Skrypty
Jak zatrzymać wykonywanie skryptu na określoną liczbę sekund, PHP Skrypty
Jak wysłać ze strony WWW e-mail z dowolnym załącznikiem, PHP Skrypty
Jak stworzyć prostą wyszukiwarkę dla własnych stron WWW, PHP Skrypty
Jak stworzyć zaawansowany test wyboru lub quiz, PHP Skrypty
Jak wygenerować bezpieczne, PHP Skrypty
Jak zrobić stronę dostępną na hasło tylko dla wybranych użytkowników, PHP Skrypty
Jak wyświetlić zawartość katalogu jako linki służące do pobrania plików, PHP Skrypty
Jak pobrać zawartość strony WWW korzystając z biblioteki CURL, PHP Skrypty
Jak uzyskać kolejny numer (id) ostatnio wstawionego rekordu, PHP Skrypty
Jak chronić adres e-mail na stronie przed spamem stosując przekierowanie, PHP Skrypty

więcej podobnych podstron