Zdefiniowano poniższą funkcję w PHP: function policz($Z) {
while($Z < 5) {
$Z += 2 * $Z + 1;
}
return $Z;
}
Funkcję policz wywołano z wartością argumentu $Z = 1. Jaki rezultat zostanie zwrócony?
Twoja odpowiedź jest na miejscu. Funkcja 'policz' w PHP działa jak pętla, która powoli zwiększa wartość zmiennej $Z, dopóki nie jest większa niż 5. W każdej iteracji dodaje do niej wynik z wyrażenia 2 * $Z + 1. Zaczynamy z $Z równym 1. W pierwszej iteracji wychodzi 3 ($Z = 2 * 1 + 1), a w drugiej – 13 ($Z = 2 * 3 + 1). Kiedy $Z przekracza 5, pętla się zatrzymuje, a funkcja 'policz' zwraca 13. Rozumiejąc, jak to działa, łatwiej przewidywać, co się stanie w podobnych funkcjach.
Niestety, tutaj coś nie zagrało. W pytaniu była funkcja 'policz' w PHP, która iteracyjnie zwiększa wartość zmiennej $Z, aż ta nie przekroczy 5. W każdej iteracji $Z rośnie o 2 * $Z + 1. Jak widać, przy odpowiednim argumencie początkowym wartość $Z rośnie bardzo szybko. W naszym przypadku zaczynamy z $Z równym 1. Po dwóch krokach mamy już 13, co kończy działanie pętli. Zamiast 1, 7 czy 4, funkcja 'policz' zwraca 13. Kluczowe jest zrozumienie, jak działają te iteracje i pętle w PHP.