Przejdź do treści głównej
INF.03Pytanie #1542 z 1558php-skladnia-i-struktury

Przeanalizuj działanie zmiennej statycznej w poniższej funkcji rekurencyjnej. Jaka wartość zostanie wyświetlona?

php
<?php
function oblicz($n) {
    static $c = 0;
    if ($n > 0) {
        $c += $n;
        oblicz($n - 1);
    }
    return $c;
}
echo oblicz(3);
?>
Opcje odpowiedzi:
A
0
B
3
C
6
Prawidłowa
D
9
Reklama

Wyjaśnienie i uzasadnienie dydaktyczne

Poprawna odpowiedź: C (6)

Zmienna statyczna static $c = 0; wewnątrz funkcji zachowuje swoją wartość pomiędzy kolejnymi wywołaniami rekurencyjnymi:

  1. oblicz(3): $c += 3 (c = 3), wywołanie oblicz(2),
  2. oblicz(2): $c += 2 (c = 5), wywołanie oblicz(1),
  3. oblicz(1): $c += 1 (c = 6), wywołanie oblicz(0),
  4. oblicz(0): warunek fałszywy, zwrot wartości $c = 6. Wypisana wartość to 6.

Dlaczego pozostałe opcje są nieprawidłowe?

  • A: Wartość 0 to stan początkowy zmiennej $c.
  • B: Wartość 3 to stan po pierwszej operacji dodawania.
  • D: Wartość 9 to błędny wynik obliczeń.

Chcesz poćwiczyć całą kwalifikację INF.03?

Egzamin próbny na czas, nauka działami, losowe pytanie albo przegląd całej bazy — wszystko w przeglądarce i bez zakładania konta.

Rozwiąż w Quizie

Pojęcia z tego pytania

Cały słownik INF03
Reklama

Podobne pytania z działu „Php skladnia i struktury”

Ten sam obszar materiału z kwalifikacji INF.03. W całej bazie znajdziesz 165 pytań z tego działu.