Pętle PHP

Niektóre czynności w skryptach trzeba wykonywać wielokrotnie, a powszechnie wiadomo, że komputery od zawsze przodują w szybkim powtarzaniu różnych działań. W języku PHP tę cechę komputerów można bardzo skutecznie wykorzystać dzięki pętlom.

Pętle PHP to specjalne konstrukcje służące do wielokrotnego wykonywania instrukcji lub bloków instrukcji. Za ich pomocą z łatwością przejrzysz wszystkie elementy tablicy, wyświetlisz wartości ze zbioru albo „poczekasz”, aż użytkownik poda poprawną wartość.

Czynność, którą wykonują pętle, jest nazywana iteracją, dlatego konstrukcje te bywają też nazywane instrukcjami iteracyjnymi (ang. iteration statement).

Inaczej mówiąc iteracja (łac. iteratio – powtarzanie) w programowaniu to czynność polegająca na wielokrotnym wykonywaniu określonych działań aż zostanie spełniony pewien warunek. I dokładnie według tej zasady działa każda pętla w PHP.

W poprzednim rozdziale, poświęconym konstrukcjom warunkowym PHP, napisałem że są jak mikser do mieszania składników skryptu. Nie uściśliłem wtedy tylko, że są jak mikser działający na powolnym biegu. Teraz, dzięki pętlom, wrzucimy najwyższy bieg i zrobimy w skryptach naprawdę porządne tornado.

W języku PHP dostępne są 4 instrukcje pętlowe:

Są to nieskomplikowane konstrukcje, których nauka nie wymaga zbyt wiele czasu, a dają programiście naprawdę potężne możliwości. W tym rozdziale pokażę ci wszystkie pętle PHP, a zacznę od pętli PHP while.

Pętla PHP while

Pętla PHP while jest najprostsza z wszystkich i w dużym stopniu przypomina instrukcję warunkową PHP if. Przyjmuje ona instrukcję warunkową w nawiasie oraz instrukcję lub blok instrukcji (w klamrze) za nawiasem.

Najpierw pętla while sprawdza wartość instrukcji warunkowej. Jeśli jest to true, to pętla while wykonuje instrukcję lub blok instrukcji przypisany tej pętli, po czym ponownie sprawdza warunek. Powtarza te czynności (iteruje) tak dotąd, aż w końcu warunek będzie niespełniony, czyli instrukcja warunkowa będzie miała wartość false.

Być może zastanawiasz się, jakim cudem w jednej iteracji (czyli powtórzeniu wykonywania pętli) warunek może być spełniony, a w następnej nie. To bardzo dobre i ważne pytanie.

Instrukcja warunkowa pętli zawsze powinna zawierać jakąś zmienną, której wartość jest modyfikowana w bloku instrukcji za nawiasem. Dzięki temu w każdej iteracji zmienna ta ma inną wartość. Spójrz na poniższy przykład:


$i = 1;

while ($i < 6) {
  echo $i . "<br>";
  $i++;
}
echo "Jesteśmy już za pętlą";

Wynik działania tej pętli jest taki:


1
2
3
4
5
Jesteśmy już za pętlą.

Przeanalizujemy ją krok po kroku, aby wszystko na pewno było jasne. Następnych pętli już nie będę tak szczegółowo analizował, ponieważ wszystkie działają na takiej samej zasadzie.

  1. Stan początkowy (wiersz 1.) — zmienna $i ma wartość 1.
  2. Iteracja 1. (wiersz 3.) — pętla sprawdza, czy zmienna $i ma wartość mniejszą od 6 To jest prawda, więc wykonuje blok instrukcji:
    1. Instrukcja 1. (wiersz 4) — wyświetla wartość zmiennej $i (1) na stronie i dodaje element HTML br, powodujący przejście do nowego wiersza.
    2. Instrukcja 2. (wiersz 5) — zwiększa wartość zmiennej $i o 1 (na 2).
  3. Iteracja 2. (wiersz 3) — zmienna $i ma teraz wartość 2. Pętla sprawdza, czy zmienna $i ma wartość mniejszą od 6. To jest prawda, więc wykonuje blok instrukcji:
    1. Instrukcja 1. (wiersz 4) — wyświetla wartość zmiennej $i (2) na stronie i dodaje element HTML br, powodujący przejście do nowego wiersza.
    2. Instrukcja 2. (wiersz 5) — zwiększa wartość zmiennej $i o 1 (na 3).
  4. Iteracja 3. (wiersz 3) — zmienna $i ma teraz wartość 3. Pętla sprawdza, czy zmienna $i ma wartość mniejszą od 6. To jest prawda, więc wykonuje blok instrukcji:
    1. Instrukcja 1. (wiersz 4) — wyświetla wartość zmiennej $i (3) na stronie i dodaje element HTML br, powodujący przejście do nowego wiersza.
    2. Instrukcja 2. (wiersz 5) — zwiększa wartość zmiennej $i o 1 (na 4).
  5. Iteracja 4. (wiersz 3) — zmienna $i ma teraz wartość 4. Pętla sprawdza, czy zmienna $i ma wartość mniejszą od 6. To jest prawda, więc wykonuje blok instrukcji:
    1. Instrukcja 1. (wiersz 4) — wyświetla wartość zmiennej $i (4) na stronie i dodaje element HTML br, powodujący przejście do nowego wiersza.
    2. Instrukcja 2. (wiersz 5) — zwiększa wartość zmiennej $i o 1 (na 5).
  6. Iteracja 5. (wiersz 3) — zmienna $i ma teraz wartość 5. Pętla sprawdza, czy zmienna $i ma wartość mniejszą od 6. To jest prawda, więc wykonuje blok instrukcji:
    1. Instrukcja 1. (wiersz 4) — wyświetla wartość zmiennej $i (5) na stronie i dodaje element HTML br, powodujący przejście do nowego wiersza.
    2. Instrukcja 2. (wiersz 4) — zwiększa wartość zmiennej $i o 1 (na 6).
  7. Iteracja 6. (wiersz 4) — zmienna $i ma teraz wartość 6. Pętla sprawdza, czy zmienna $i ma wartość mniejszą od 6. To jest fałsz, więc pętla nie wykonuje swojego bloku instrukcji, tylko przekazuje pałeczkę pierwszej instrukcji, która znajduje się za jej blokiem instrukcji (wiersz 8).
  8. Zostaje wykonana następna instrukcja, która wyświetla napis "Jesteśmy już za pętlą".

Warunek pętli PHP while nie musi składać się z jednego wyrażenia warunkowego, np.:


$i = 6;

while ($i > 5 && $i < 11) {
  echo $i . "<br>";
  $i++;
}

Ta instrukcja while wydrukuje na stronie wszystkie liczby z przedziału od 6 do 10.

Jeśli jeszcze nie masz pewności, czy w pełni dobrze rozumiesz działanie tej pętli, to może pomocny będzie poniższy schemat przepływu sterowania.

Schemat przepływu sterowania pętli php while
Pętla PHP while

Oczywiście pętli while rzadko używa się do wyświetlania słupków liczb, za to o wiele częściej jest ona wykorzystywana do generowania różnych struktur na stronie, np. tabel HTML.

Mieszanie pętli while z kodem HTML

Za pomocą pętli while można na przykład pobierać dane z bazy danych i umieszczać je w odpowiednich elementach HTML, aby odpowiednio prezentowały się na stronie.

Na razie jeszcze nie pokazałem, jak tworzyć i napełniać danymi bazy danych, za to opisałem sposoby tworzenia tablic w PHP. A tak się składa, że pętla while świetnie sprawdza się w pracy z tablicami indeksowanymi numerycznie.

Utworzymy więc przykładową tablicę indeksowaną numerycznie zawierającą nazwy owadów:


$owady = array(
  "Turkuć podjadek",
  "Zyzuś tłuścioch",
  "Złodziejaszek rypidełko",
  "Wydłubka oczateczka"
);

Przypomnę, że długość tablicy (czyli liczbę znajdujących się w niej elementów) można sprawdzić za pomocą funkcji PHP count(), np.:


echo count($owady); // Wynik: 4

Te elementy są w niej domyślnie ponumerowane od 0 do 3. W związku z tym wszystkie elementy tej tablicy możemy wyświetlić na stronie w następujący sposób:


$quantity = count($insects); // Liczba elementów w tablicy
$i = 0; // Zmienna iteracyjna, za pomocą której kontrolujemy iteracje pętli

while ($i < $quantity) { // Dopóki wartość zmiennej $i jest mniejsza od wartości zmiennej $quantity
  echo "$insects[$i]" . "<br>"; // Wyświetlamy element tablicy $insects o indeksie $i
  $i++; // Zwiększamy wartość zmiennej $i o 1
}

Wynik działania tej pętli wygląda tak:


Turkuć podjadek
Zyzuś tłuścioch
Złodziejaszek rypidełko
Wydłubka oczateczka

Udało nam się wyświetlić wszystkie elementy tablicy, to teraz wdrapiemy się na wyższy poziom naszych umiejętności i umieścimy te dane w tabeli HTML, aby ładnie je zaprezentować użytkownikowi.

Podstawowa struktura tabeli HTML składa się z 4 elementów: table (tabela), tr (wiersz tabeli), td (komórka tabeli) i th (komórka nagłówka tabeli).

My chcemy utworzyć tabelę z dwiema kolumnami. W lewej kolumnie będzie znajdowała się liczba porządkowa owada, a w prawej jego nazwa. Najpierw utworzymy dwa pierwsze wiersze tej tabeli bezpośrednio w HTML:


<table>
  <tr>
    <th>Liczba porządkowa</th>
    <th>Nazwa owada</th>
  </tr>
  <tr>
    <td>1</td>
    <td>Turkuć podjadek</td>
  </tr>
</table>

Teraz pozostało już tylko odpowiednio wpleść te elementy HTML w pętlę PHP while. Spójrz na poniższy kod, który dla ułatwienia przedstawiam w całości od początku:


<?php
$insects = array(
  "Turkuć podjadek",
  "Zyzuś tłuścioch",
  "Złodziejaszek rypidełko",
  "Wydłubka oczateczka"
);

$quantity = count($insects);
$i = 0;
?>
<table>
  <tr>
    <th>Numer porządkowy</th>
    <th>Nazwa owada</th>
  </tr>
<?php
while ($i < $quantity) {
?>
  <tr>
    <td><?php echo $i + 1 ?></td>
    <td><?php echo $insects[$i] ?></td>
  </tr>
<?php
  $i++;
}
?>
</table>

Pętla while znajduje się w elemencie table, w którym odpowiednio generuje wiersze (tr) i komórki danych (td) na podstawie zawartości tablicy o nazwie $insects.

W wierszu 21. pętla wyświetla numer porządkowy owada. Jeśli Twoją uwagę przyciągnęło wyrażenie $i + 1, to przypomnę, że tablice są indeksowane od 0, więc aby uzyskać numerację od 1, należy wartości indeksów zwiększać o 1.

W wierszu 22. pętla wyświetla nazwę owada znajdującego się w tablicy pod określonym indeksem.

To wszystko. Jeśli w przeglądarce internetowej podejrzysz kod źródłowy, to znajdziesz w nim taką tabelę:


<table>
  <tbody><tr>
    <td>1</td>
    <td>Turkuć podjadek</td>
  </tr>
  <tr>
    <td>2</td>
    <td>Zyzuś tłuścioch</td>
  </tr>
  <tr>
    <td>3</td>
    <td>Złodziejaszek rypidełko</td>
  </tr>
  <tr>
    <td>4</td>
    <td>Wydłubka oczateczka</td>
  </tr>
</tbody></table>

Przeglądarka Chrome automatycznie dodała jeszcze element tabeli tbody. W tym przykładzie możemy go zignorować, a jeśli go nie znasz i chcesz poznać, to jego opis znajdziesz na stronie Element HTML tbody.

W oknie przeglądarki nasza tabela wygląda tak:

przykładowa tabela html wygenerowana przez pętlę php while
Przykładowa tabela HTML wygenerowana przez pętlę while

Dalsze jej upiększanie to już sprawa CSS, nie PHP czy HTML. Poniżej znajduje się prosty arkusz stylów, który można zastosować:


<style>
table {
  border-collapse: collapse;
}

th, td {
  border: 1px solid black;
  padding: 5px;
}
td:nth-of-type(odd) {
  text-align: center;
  font-weight: bold;
}
</style>

Teraz tabela wygląda tak:

przykładowa tabela wygenerowana przez pętlę php while z formatowaniem css
Przykładowa tabela wygenerowana przez pętlę while po zastosowaniu arkusza stylów

Wiesz już jak działa pętla PHP while w podstawowej wersji składni. Pętla ta, podobnie jak pozostałe pętle (oprócz do-while) i wszystkie instrukcje warunkowe PHP, obsługuje też składnię alternatywną.

Składnia alternatywna pętli PHP while

W składni alternatywnej pętli PHP while zamiast znaku otwarcia klamry bloku instrukcji stosuje się dwukropek, a zamiast znaku zamknięcia klamry bloku instrukcji stosuje się słowo kluczowe endwhile;.

Poniżej przedstawiam poprzednią pętlę while wyrażoną w składni alternatywnej PHP:


while ($i < $quantity) :
?>
  <tr>
    <td><?php echo $i + 1 ?></td>
    <td><?php echo $insects[$i] ?></td>
  </tr>
<?php
  $i++;
endwhile;

Jak widać różnica jest kosmetyczna, więc nie ma co się nad nią rozwodzić, tylko możemy przejść do drugiego zapowiadanego typu pętli — do-while.

Pętla PHP do-while

Pętla PHP do-while, jak nietrudno domyślić się po jej nazwie, jest bardzo podobna do pętli while. Tak naprawdę to jest po prostu jej innym wariantem.

Od podstawowej wersji pętla do-while różni się tylko tym, że na początku ma klauzulę do, której kod zostaje wykonany przed sprawdzeniem warunku w klauzuli while. Oznacza to, że blok kodu pętli do-while na pewno zostanie wykonany przynajmniej raz. Spójrz na poniższy klasyczny przykład:


$i = 0;

do {
  echo "$i";
}
while ($i > 0); // Wynik: 0

Najpierw klauzula do drukuje wartość zmiennej $i (0), po czym sprawdza, czy jest ona większa od 0. Nie jest, więc pętla kończy działania na wykonaniu tylko tej jednej instrukcji echo.

Pętli PHP do-while używa się w sytuacjach, w których zależy nam na tym, aby blok kodu został wykonany przynajmniej raz.

Uwaga: Pętla PHP do-while nie obsługuje składni alternatywnej PHP, ale oczywiście można ją przeplatać z kodem HTML.

Na koniec jeszcze przedstawiam schemat przepływu sterowania tej pętli dla osób, które preferują wizualne objaśnienia.

Schemat przepływu sterowania pętli php do-while
Pętla PHP do-while

A teraz przejdziemy do najbardziej wszechstronnej i uniwersalnej pętli PHP — pętli for.

Pętla PHP for

Pętla PHP for różni się od pętli while tym, że obejmuje swoją składnią elementy, które pętla while pobiera z zewnątrz lub umieszcza w bloku instrukcji.

Przypomnę pierwszy przykład pętli while z początku tej strony:

$i = 1;

while ($i < 6) {
  echo $i . "<br>";
  $i++;
}s

Zwróć uwagę na inicjalizację zmiennej $i wartością 1 przed pętlą (wiersz 1.) oraz na inkrementację tej zmiennej w ostatniej instrukcji bloku instrukcji pętli (wiersz 5.).

Pętla for wszystkie te elementy objęłaby nawiasem po słowie kluczowym for. Jej składnia wygląda zatem następująco:

for (inicjalizacja_licznika; test_licznika; aktualizacja_licznika) {
  blok_instrukcji;
}

Pętla PHP for składa się ze słowa kluczowego for, po którym w nawiasie znajdują się wyrażenie inicjalizujące licznik (wykonywane tylko raz, na początku pierwszej iteracji pętli), wyrażenie (lub wyrażenia rozdzielone przecinkami) testujące wartość licznika oraz wyrażenie (lub wyrażenia rozdzielone przecinkami) aktualizujące wartość licznika, rozdzielone średnikami. Za nawiasem znajduje się blok kodu w klamrze (może być też pojedyncza instrukcja bez klamry).

Porównując tę strukturę pętli for do powyższego przykładu pętli while:

  1. Człon inicjalizacja_licznika to $i = 1;.
  2. Człon test_licznika to $i < 6;.
  3. Człon aktualizacja_licznika to $i++;.
  4. Blok instrukcji to… blok instrukcji (pozbawiony już elementu $i++;).

Wyposażeni w tę wiedzę możemy napisać pierwszą prawdziwą instrukcję PHP for (warto zapamiętać ten doniosły moment, bo jeśli na poważnie zajmiesz się programowaniem, to pętle for będą dla ciebie chlebem powszednim):


for ($i = 1; $i < 6; $i++) {
  echo $i . "
"; }

Wynik:


1
2
3
4
5

To wszystko. Umiesz już tworzyć pętle PHP for. Poniżej znajduje się jeszcze jej schemat przepływu sterowania dla tych osób, dla których obraz jest wart więcej niż tysiąc słów.

Schemat przepływu sterowania pętla php for
Pętla PHP for

A teraz zobaczymy, jak pętla PHP for spisuje się w przeplataniu z kodem HTML.

Mieszanie pętli PHP for z kodem HTML

Aby zademonstrować, jak można przeplatać pętlę for z kodem HTML, ponownie posłużę się wcześniejszym przykładem. Ale tym razem wykorzystam przykład z tablicą owadów. Poniżej znajduje się on w wersji napisanej przy użyciu pętli for:


<?php
$insects = array(
  "Turkuć podjadek",
  "Zyzuś tłuścioch",
  "Złodziejaszek rypidełko",
  "Wydłubka oczateczka"
);

$quantity = count($insects);
$i = 0;
?>
<table>
  <tr>
    <th>Numer porządkowy</th>
    <th>Nazwa owada</th>
  </tr>
<?php
for ($i = 0; $i < count($insects); $i++) {
?>
  <tr>
    <td><?php echo $i + 1 ?></td>
    <td><?php echo $insects[$i] ?></td>
  </tr>
<?php
}
?>
</table>

Jak widać, pętla for jest bardzo zwięzła i elegancka. Wszystkie jej składniki „techniczne” znajdują się w jednym ściśle zdefiniowanym miejscu, co ułatwia pracę z kodem oraz pomaga w unikaniu różnych błędów, choćby związanych z pominięciem któregoś elementu przy kopiowaniu lub przenoszeniu.

Jednak powyższa pętla, ma pewną wadę, która może się ujawnić przy dużych rozmiarach tablicy. Spójrz jeszcze raz:


for ($i = 0; $i < count($insects); $i++)

Przypomnę, że inicjalizacja licznika jest wykonywana tylko raz, na początku pierwszej iteracji. Natomiast wyrażenie warunkowe i aktualizujące są wykonywane w każdej iteracji.

To znaczy, że pętla w każdej iteracji będzie sprawdzała rozmiar tablicy $insects. Gdy tablica zawiera cztery elementy, to nie ma znaczenia, ale gdyby zawierała ich bardzo dużo, to ta pętla mogłaby stanowić poważne obciążenie dla serwera.

Na szczęście ten problem można bardzo łatwo rozwiązać. Wystarczy przenieść wyrażenie sprawdzające długość tablicy do sekcji inicjalizacyjnej:


for ($i = 0, $arrayLength = count($insects); $i < $arrayLength; $i++)

Teraz długość tablicy zostanie sprawdzona tylko raz, na początku pierwszej iteracji pętli. Potem będą już używane tylko dwie zmienne, które zostały zainicjalizowane na tym pierwszym etapie.

Składnia alternatywna pętli PHP for

Pętla PHP for, tak jak wszystkie pętle PHP, obsługuje składnię alternatywną. Znak otwarcia klamry jak zawsze zamienia się na dwukropek, natomiast znak zamknięcia klamry zastępuje słowo kluczowe endfor;.

Oto poprzedni przykład zapisany przy użyciu składni alternatywnej:


for ($i = 0, $arrayLength = count($insects); $i < $arrayLength; $i++):
?>
  <tr>
    <td><?php echo $i + 1 ?></td>
    <td><?php echo $insects[$i] ?></td>
  </tr>
<?php
endfor;

Teraz przejdziemy do ostatniego typu pętli PHP — foreach.

Pętla PHP foreach

Pętla PHP foreach ułatwia przeglądanie i przetwarzanie tablic. Jedną z jej zalet jest to, że nie wymaga sprawdzania długości tablicy, ponieważ zaczyna działanie od pierwszego elementu, przegląda wszystkie po kolei i kończy na ostatnim.

Instrukcja ta ma dwa rodzaje składni, ponieważ za jej pomocą można przeglądać zarówno tablice indeksowane numerycznie, jak i tablice asocjacyjne (opisane w dalszym rozdziale).

Tutaj zamieszczam tylko podstawowy opis użycia tej pętli z tablicami indeksowanymi numerycznie. Natomiast więcej szczegółów i opis drugiego rodzaju składni znajduje się w rozdziale poświęconym tablicom.

Składnia pętli foreach do przeglądania tablic indeksowanych numerycznie wygląda następująco:

foreach ($tablica as $wartość) {
  instrukcje;
}

Weźmy na przykład naszą tablicę owadów:


$insects = array(
  "Turkuć podjadek",
  "Zyzuś tłuścioch",
  "Złodziejaszek rypidełko",
  "Wydłubka oczateczka"
);

Za pomocą pętli foreach wszystkie jej elementy przejrzymy w następujący sposób:


foreach($insects as $insect) {
  echo $insect . "<br>";
}

Mieszanie pętli PHP foreach z kodem HTML

Poniżej znajduje się przykład przeplatania pętli foreach z kodem HTML:


<?php foreach($insects as $insect) { ?>
  <p><?php echo $insect; ?></p>
<?php } ?>

Składnia alternatywna pętli PHP foreach

Pętla PHP foreach obsługuje także składnię alternatywną. Znak otwierający klamrę zamieniamy na dwukropek, a znak zamykający klamrę zamieniamy na słowo kluczowe endforeach;, np.:


<?php foreach($insects as $insect): ?>
  <p><?php echo $insect; ?></p>
<?php endforeach; ?>

To był ostatni rodzaj pętli PHP, ale to nie oznacza końca rozdziału. Zanim przejdziemy dalej, chciałbym jeszcze pokazać ci dwa sposoby przerywania lub modyfikowania przebiegu pętli.

Instrukcje PHP break i continue

W języku PHP dostępne są dwie instrukcje, za pomocą których można przerwać lub zmodyfikować przebieg działania pętli — break i continue. Zaczniemy od instrukcji break, która jest już ci znana z poprzedniego rozdziału, o instrukcjach warunkowych PHP.

Instrukcja PHP break

Instrukcja PHP break może być używana nie tylko z instrukcją warunkową switch, ale też z pętlami, w których działa dokładnie tak samo. Ogólnie rzecz biorąc, powoduje ona zakończenie wykonywania bieżącej instrukcji for, while, do-while lub switch.

Choć wiesz już, jak się używa instrukcji PHP break, jednej rzeczy ci jeszcze nie powiedziałem. Instrukcja ta przyjmuje opcjonalny parametr w postaci liczby całkowitej, który określa poziom zagnieżdżenia, z jakiego ma nastąpić wyjście. Spójrz na poniższy, trochę wydumany, ale za to prosty i przejrzysty, przykład:


for ($i = 1; $i < 4; $i++) {
  for ($j = 6; $j > 0; $j--) {
    echo "[" . $i . ", " . $j . "]<br>";
    if ($j === 3) {
      break;
    }
  }
}

Teraz instrukcja break spowoduje wyjście tylko z najbliższej sobie pętli, czyli tej, która w nagłówku inicjalizuje zmienną $j. Otrzymamy więc następujący wynik:


[1, 6]
[1, 5]
[1, 4]
[1, 3]
[2, 6]
[2, 5]
[2, 4]
[2, 3]
[3, 6]
[3, 5]
[3, 4]
[3, 3]

Jeśli natomiast do instrukcji break dodamy parametr 2break 2; — to wynik zmieni się następująco:


[1, 6]
[1, 5]
[1, 4]
[1, 3]

Jest to spowodowane tym, że teraz, w momencie, gdy zmienna $j osiągnie wartość 3, przerwiemy działanie obu pętli.

Instrukcja continue jest trochę mniej radykalna i można jej używać tylko z pętlami. Przyjmy się jej teraz.

Instrukcja PHP continue

Instrukcja PHP continue, w odróżnieniu od instrukcji break, nie powoduje całkowitego zakończenia pętli, tylko przejście do nowej iteracji od miejsca, w którym się znajduje. Na przykład:


for ($i = 1; $i < 5; $i++) {
  if ($i == 3) {
    continue;
  }
  echo $i . "<br>";
}

Ta pętla drukuje liczby od 1 do 4, ale pomija wydruk liczby 3. Wynik jej działania jest więc następujący:


1
2
4

Instrukcja continue, tak jak break, przyjmuje również opcjonalny parametr określający liczbę poziomów pętli nadrzędnych, które ma pominąć.

Podsumowanie

  1. Pętla to instrukcja służąca do wielokrotnego wykonywania pewnych działań.
  2. W języku PHP są 4 instrukcje pętlowe: while, do-while, for i foreach.
  3. Pętla for jest najbardziej uniwersalna a pętla foreach najlepiej nadaje się do pracy z tablicami.
  4. Pętla do-while gwarantuje, że blok kodu zostanie wykonany przynajmniej raz.
  5. Iteracja to wielokrotne wykonywanie pewnej czynności.
  6. Instrukcja break powoduje natychmiastowe przerwanie pętli lub instrukcji warunkowej i oddanie sterowania do pierwszej instrukcji, która znajduje się za przerwaną instrukcją.
  7. Instrukcja continue powoduje przejście do kolejnej iteracji pętli od miejsca, w którym się znajduje.
  8. Wszystkie instrukcje pętlowe PHP oprócz pętli do-while obsługują składnię alternatywną.



Pytania

  1. Czym jest pętla?
  2. Jakie znasz pętle w języku PHP?
  3. Czy umiesz zwięźle opisać składnię i podstawowe cechy każdej z pętli PHP?
  4. Jaką gwarancję daje pętla do-while?
  5. Która z pętli najlepiej nadaje się do pracy z tablicami?
  6. Czym jest iteracja?
  7. Co robi instrukcja break?
  8. Co robi instrukcja continue?
  9. Która z instrukcji pętlowych PHP nie obsługuje składni alternatywnej?



Ćwiczenia

  1. Napisz skrypt, który wyświetli wszystkie elementy z tablicy owadów w postaci listy HTML.
  2. Stwórz nieskończoną pętlę while.
  3. Wydrukuj wszystkie liczby z przedziału od 1 do 1000, które są podzielne przez 9.
  4. Silnia matematyczna to iloczyn wszystkich liczb z określonego przedziału, np. 5! (silnia 5) wynosi: 1 * 2 * 3 * 4 * 5 = 720. Napisz pętlę w PHP, która wyświetla kolejne wartości obliczania silni dla wybranej liczby.

    Uwaga: wartość silni bardzo szybko rośnie, więc nie wybieraj zbyt dużej liczby.

  5. Ciąg Fibonacciego to ciąg liczb, w którym każda liczba jest sumą dwóch poprzednich, np. 0, 1, 1, 2, 3, 5, 8, 13, 21 itd. Napisz skrypt drukujący na stronie kolejne liczby ciągu Fibonacciego w wybranym zakresie.
  6. Napisz skrypt, który znajduje wszystkie liczby pierwsze w przedziale od 1 do 100. Poszukaj informacji o sicie Erastotenesa w internecie i zaimplementuj ten algorytm.

Podobał Ci się ten artykuł?

Oceń go!

Średnia 5 / 5. Liczba głosów: 1

Jeszcze nikt nie głosował. Wyprzedź innych i zagłosuj.

Skoro spodobał Ci się ten artykuł...

Poleć go znajomym!

Ojej :( Powiedz nam, co powinniśmy poprawić!

Podoba Ci się ta strona?

Pomóż nam się rozwijać, wykupując płatne konto. Dzięki temu będziemy mogli tworzyć dla Ciebie jeszcze więcej ciekawych treści, a Ty pozbędziesz się reklam.

Subskrybuj
Powiadom o
guest

0 Komentarze
Najstarsze
Najnowsze Najwięcej głosów
Opinie w linii
Zobacz wszystkie komentarze
0
Chętnie poznam Twoje przemyślenia, skomentuj.x