KWALIFIKACJA INF3 - STYCZEŃ 2021

PYTANIE NR 6.
Która pętla w języku PHP pozwala wykonać operacje na wszystkich elementach tablicy z automatycznym indeksowaniem jej elementów?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Pętla foreach jest przeznaczona do iteracji po tablicach: przechodzi kolejno po wszystkich elementach i pozwala pobrać wartość oraz (opcjonalnie) klucz. W przeciwieństwie do for/while/do...while nie wymaga ręcznego ustawiania licznika ani warunku zakończenia opartego na indeksie tablicy.

Pełne wyjaśnienie:

W PHP pętla foreach służy do wygodnego przechodzenia po elementach tablicy. Działa zarówno dla tablic indeksowanych, jak i asocjacyjnych. Najczęściej używa się jej w formach:

  • foreach ($tablica as $wartosc) – gdy interesują nas tylko wartości,
  • foreach ($tablica as $klucz => $wartosc) – gdy potrzebujemy zarówno klucza (indeksu), jak i wartości.

To właśnie spełnia sens pytania: wykonujemy operacje na wszystkich elementach tablicy, a dostęp do elementów odbywa się bez ręcznego sterowania indeksem (PHP sam przechodzi po kolejnych pozycjach i podstawia klucz/wartość).

Dlaczego pozostałe odpowiedzi są niepoprawne w tym kontekście?

  • while – to pętla warunkowa. Aby przejść tablicę, trzeba samodzielnie przygotować warunek (np. sprawdzanie licznika) oraz zadbać o jego zmianę. Nie jest to konstrukcja "do tablic" i nie daje automatycznie klucza/wartości elementu.
  • for – pętla licznikowa. Może iterować po tablicy indeksowanej, ale wymaga jawnej inicjalizacji licznika, warunku zakończenia i inkrementacji oraz zwykle użycia indeksu (np. $tablica[$i]). Nie zapewnia automatycznego przejścia po kluczach tablic asocjacyjnych bez dodatkowych operacji.
  • do...while – wariant pętli warunkowej, który wykona się co najmniej raz. Tak jak while wymaga przygotowania warunku i kontrolowania zmiennych sterujących; nie jest dedykowany do iteracji po tablicy.

Wskazówka egzaminacyjna: jeśli w pytaniu pojawia się iteracja po tablicy i praca na wszystkich elementach, domyślnym wyborem jest foreach, zwłaszcza gdy mowa o kluczach i wartościach.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
foreach to pętla służąca do iteracji po tablicach w PHP. Pozwala przejść kolejno po wszystkich elementach i wykonywać na nich operacje bez ręcznego sterowania licznikiem. Może zwracać samą wartość albo parę klucz i wartość.
Dla tablicy asocjacyjnej foreach najczęściej zapisuje się jako foreach ($t as $k => $v). Wtedy w każdej iteracji zmienna $k zawiera klucz (np. napis), a $v odpowiadającą mu wartość.
foreach przechodzi po elementach tablicy automatycznie. for wymaga licznika, warunku zakończenia i inkrementacji (np. $i++), a przy tablicach zwykle ręcznego odwołania typu $tablica[$i]. foreach lepiej działa też z kluczami asocjacyjnymi.
while jest pętlą warunkową i nie jest "tablicowa". Żeby iterować po tablicy, musisz sam utworzyć licznik/iterator i pilnować, aby warunek kiedyś stał się fałszywy. W foreach PHP samo przechodzi po kluczach i wartościach.
foreach iteruje po tablicy w kolejności jej przechowywania. Dla tablic indeksowanych zwykle jest to kolejność dodania elementów. Dla asocjacyjnych także, ale jeśli modyfikujesz tablicę (np. sortujesz), kolejność iteracji będzie zgodna z aktualnym układem elementów.
Użyj składni z dwoma zmiennymi: foreach ($tablica as $indeks => $wartosc). W każdej iteracji masz dostęp do klucza (indeksu) w zmiennej $indeks i do elementu w zmiennej $wartosc.
Tak, ale trzeba uważać. Najprościej modyfikuje się elementy przez pracę na kluczu (np. $t[$k] = ...). PHP umożliwia też iterację "przez referencję", ale to temat bardziej zaawansowany i na egzaminie zwykle wystarcza poprawne rozumienie klucza i wartości.
for bywa wygodny, gdy liczba iteracji nie wynika bezpośrednio z tablicy (np. pętla od 1 do 10) albo gdy potrzebujesz skakać co N elementów. Do typowego przejścia po wszystkich elementach tablicy najczęściej wybiera się foreach.
Częste błędy to: mylenie nazwy pętli (wybór for/while), brak rozróżnienia między kluczem a wartością oraz przekonanie, że "automatyczne indeksowanie" oznacza koniecznie indeks liczbowy. Warto kojarzyć foreach jako pętlę do tablic, także asocjacyjnych.
Jeśli zadanie mówi o wykonaniu operacji na wszystkich elementach tablicy i sugeruje brak ręcznego licznika (albo potrzebę dostępu do klucza i wartości), to typowym rozwiązaniem w PHP jest foreach. Pozostałe pętle są ogólne i wymagają sterowania warunkiem.
info

Statystycznie 74% uczniów zna prawidłową odpowiedź. średnio łatwe

W praktyce zawodowej kluczowe jest to, że pętla foreach jest przeznaczona do iteracji po tablicach: przechodzi kolejno po wszystkich elementach i pozwala pobrać wartość oraz (opcjonalnie) klucz.

Źródła:

  • PHP Manual: foreach — https://www.php.net/manual/en/control-structures.foreach.php (dostęp 2026-02-18)
  • PHP Manual: for — https://www.php.net/manual/en/control-structures.for.php (dostęp 2026-02-18)
  • PHP Manual: while — https://www.php.net/manual/en/control-structures.while.php (dostęp 2026-02-18)

Materiały:

  • Oficjalna dokumentacja PHP: pętla foreach
  • Oficjalna dokumentacja PHP: pętle for/while/do...while
  • Ćwiczenia: iteracja po tablicach indeksowanych i asocjacyjnych w PHP

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego