W pokazanym fragmencie kodu (z ilustracji) ustawiono wartości początkowe: $i = 10 oraz $a = 0. Następnie wykonywana jest pętla while ($i). W PHP warunek pętli jest oceniany w kontekście logicznym: liczba różna od zera jest traktowana jako prawda, a zero jako fałsz. Oznacza to, że pętla będzie działać tak długo, jak długo $i nie osiągnie 0.
Wewnątrz pętli są dwie instrukcje wykonywane zawsze w tej samej kolejności:
- $a = $a + 2; – w każdej iteracji zwiększamy $a o 2.
- $i--; – w każdej iteracji zmniejszamy $i o 1, co przybliża nas do zakończenia pętli.
Policzmy liczbę iteracji. Skoro $i startuje od 10 i w każdej iteracji jest zmniejszane o 1, to po kolejnych przejściach przyjmie wartości: 9, 8, 7, …, 1, 0. Iteracji będzie dokładnie 10, bo dopiero gdy $i stanie się równe 0, warunek while ($i) będzie fałszywy i pętla się zatrzyma.
Skoro w każdej z 10 iteracji dodajemy 2 do $a, całkowity przyrost wynosi:
10 · 2 = 20
Dlatego poprawna jest odpowiedź "20".
Dlaczego pozostałe wartości są błędne? "10" wynika zwykle z pomylenia liczby iteracji z wynikiem (ignorowanie przyrostu o 2). "2" to częsty skutek przeanalizowania tylko pierwszej iteracji i nieuwzględnienia powtarzania pętli. Aby unikać takich błędów na egzaminie, warto robić krótką tabelę zmian zmiennych ($i i $a) dla 2–3 pierwszych iteracji i dopiero potem uogólniać liczbę powtórzeń.