Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Programowanie webowe Algorytmy i podstawy informatyki PHP

W języku PHP instrukcja foreach jest instrukcją

A. wyboru, dla elementów tablicy.
B. warunkową, niezależnie od typu zmiennej.
C. pętli, przeznaczoną do przechodzenia po elementach tablicy.
D. pętli, niezależnie od typu zmiennej.

Opracowane na podstawie zadania CKE, styczeń 2017 (arkusz E.14-X-17.01): W arkuszu: pętla „wyłącznie dla elementów tablicy”. foreach przechodzi też po właściwościach obiektu, więc słowo „wyłącznie” usunięto.

Instrukcja foreach w PHP jest specjalną instrukcją pętli służącą do przechodzenia po elementach tablicy. To właśnie dlatego odpowiedź o pętli przeznaczonej do iterowania po tablicy jest właściwa. W praktyce używa się jej wtedy, gdy nie chcesz ręcznie pilnować indeksu, jak w klasycznej pętli for. PHP samo pobiera kolejne elementy kolekcji i przypisuje je do zmiennej roboczej. Można przechodzić tylko po wartościach albo po parach klucz => wartość, co jest bardzo wygodne przy tablicach asocjacyjnych, np. z danymi użytkownika, produktami w koszyku albo wynikami pobranymi z bazy danych. Z mojego doświadczenia foreach jest jedną z najczęściej używanych konstrukcji w PHP, bo kod jest czytelniejszy i trudniej pomylić się na indeksach. Dobra praktyka jest taka, żeby stosować foreach wtedy, gdy interesuje nas każdy element tablicy, a nie koniecznie pozycja liczona ręcznie. Warto też wiedzieć, że w nowszym, praktycznym PHP foreach może obsługiwać nie tylko zwykłe tablice, ale też obiekty iterowalne, np. implementujące Traversable. Jednak w podstawowym ujęciu szkolnym i egzaminacyjnym najważniejsze jest: foreach to pętla do przechodzenia po elementach tablicy, a nie instrukcja warunkowa ani instrukcja wyboru.
W PHP foreach nie jest pętlą działającą dowolnie na każdej zmiennej, bo jej sens polega na iteracji po zbiorze elementów. Najczęściej jest to tablica, a w bardziej zaawansowanym kodzie także obiekt, który da się iterować. Jeśli ktoś myśli, że foreach można użyć niezależnie od typu zmiennej, to zwykle miesza ogólne pojęcie pętli z konkretną składnią języka. Pętla while albo for może być oparta na dowolnym warunku logicznym, ale foreach potrzebuje struktury, z której da się pobierać kolejne elementy. Próba użycia jej na zwykłej liczbie, napisie traktowanym jak jedna wartość albo wartości null prowadzi do błędnego rozumowania, a często też do ostrzeżeń lub błędów w czasie działania programu.

Nie należy też mylić foreach z instrukcją warunkową. Instrukcje warunkowe, takie jak if, else albo elseif, służą do podejmowania decyzji na podstawie warunku, np. czy użytkownik jest zalogowany albo czy formularz został poprawnie wypełniony. foreach niczego sam z siebie nie sprawdza w takim sensie, tylko powtarza blok kodu dla kolejnych elementów kolekcji. Podobnie nie jest to instrukcja wyboru. W PHP do wyboru jednego z wielu wariantów służy switch, a w nowszym stylu również match. Foreach może oczywiście zawierać w środku if albo switch, bo w prawdziwych aplikacjach często filtrujemy dane w trakcie iteracji, ale sama konstrukcja nadal pozostaje pętlą. Moim zdaniem najprościej zapamiętać to tak: jeżeli masz listę rekordów, produktów, ocen albo wpisów z bazy i chcesz wykonać operację dla każdego z nich, wybierasz foreach.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.