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

Słowa kluczowe: Pętla for w PHP Tablice w PHP

Pętla zapisana w języku PHP wstawi do tablicy liczby

$x = 5;
for ($i = 0; $i < 10; $i++)
{
    $tab[$i] = $x;
    $x = $x + 5;
}
A. 5, 10, 15, 20, 25, 30, 35, 40, 45, 50
Dobrze. Zapis następuje przed zwiększeniem, więc ciąg zaczyna się od 5 i kończy na 50.
B. 10, 15, 20, 25, 30, 35, 40, 45, 50, 55
Źle. Taki ciąg wyszedłby przy zwiększaniu zmiennej przed zapisem do tablicy.
C. 0, 5, 10, 15, 20, 25, 30, 35, 40, 45
Źle. Zmienna zaczyna od 5, a nie od 0.
D. 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
Źle. Licznik rośnie o 1, ale do tablicy trafia zmienna zwiększana o 5.

Poprawny jest ciąg 5, 10, 15, … 50. Przed pętlą zmienna $x ma wartość 5. W każdym obiegu najpierw zapisuje się bieżące $x do komórki $tab[$i], a dopiero potem zwiększa $x o 5. Pierwsza komórka dostaje więc 5, druga 10, trzecia 15.

Pętla wykonuje się dla $i od 0 do 9, czyli 10 razy, więc tablica ma 10 elementów, a ostatni to 5 + 9 · 5 = 50. Do zapamiętania: kolejność instrukcji w ciele pętli ma znaczenie - zapis przed zmianą daje wartość początkową jako pierwszy element. Taki sam ciąg w PHP da funkcja range(5, 50, 5).

Najczęstszy błąd to zamiana kolejności instrukcji w ciele pętli. Ciąg 10, 15, … 55 wyszedłby, gdyby $x zwiększano o 5 przed zapisaniem do tablicy - wtedy pierwsza komórka dostałaby już 10. W kodzie najpierw jest jednak przypisanie $tab[$i] = $x;, a dopiero potem dodawanie.

Ciąg 0, 5, … 45 powstałby przy wartości początkowej 0, a tu $x zaczyna od 5. Ciąg 5, 6, … 14 to pomylenie kroku pętli z krokiem zmiennej: licznik $i rośnie o 1, ale do tablicy trafia $x, które rośnie o 5. Przy takich zadaniach warto rozpisać pierwsze dwa lub trzy obiegi w tabelce z kolumnami $i, $tab[$i] i $x po obiegu - wynik staje się wtedy oczywisty.

Wynik można też sprawdzić, wypisując tablicę funkcją print_r($tab) albo var_dump($tab).

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.