Praca z rekurencją w PHP
W programowaniu istnieje takie pojęcie, jak
rekurencja - to sytuacja, gdy funkcja wywołuje
samą siebie. Spójrzmy na przykład.
Wyświetlmy za pomocą rekurencji liczby od 1
do 10:
<?php
$i = 1;
function func()
{
global $i;
echo $i;
$i++;
if ($i <= 10){
func(); // tutaj funkcja wywołuje samą siebie
}
}
func();
?>
Porozmawiajmy, jak działa ten kod.
Mamy globalną zmienną $i
i funkcję func, wewnątrz której do konsoli
wypisywana jest zawartość zmiennej $i,
a następnie wykonywane jest ++.
Jeśli nasza zmienna $i jest mniejsza lub
równa 10, to funkcja jest wywoływana ponownie.
Ponieważ zmienna $i jest globalna,
to przy każdym nowym wywołaniu funkcji będzie w niej
ustawiona podczas poprzedniego wywołania wartość
zmiennej $i.
Okaże się, że funkcja będzie wywoływać samą
siebie dopóki $i nie stanie się
większe niż 10.
Należy pamiętać, że w naszym przypadku nie można funkcji
uruchomić bez if - jeśli to zrobić,
to otrzymamy nieskończone wywołanie funkcji.