Rekurencja z parametrem w PHP
Przy pomocy rekurencji wypiszmy sekwencyjnie elementy tablicy. Niech tablica początkowo jest przekazywana parametrowi funkcji:
<?php
func([1, 2, 3]);
?>
Na razie, bez użycia rekurencji, wykorzystując funkcję
array_shift
wypiszmy wszystkie elementy tablicy po kolei:
<?php
function func($arr) {
var_dump(array_shift($arr)); // wypisze 1
var_dump($arr); // wypisze [2, 3] - tablica zmniejszyła się
var_dump(array_shift($arr)); // wypisze 2
var_dump($arr); // wypisze [3] - tablica zmniejszyła się
var_dump(array_shift($arr)); // wypisze 3
var_dump($arr); // wypisze [] - tablica jest pusta
}
func([1, 2, 3]);
?>
Jak widzicie, funkcja array_shift
wycina i zwraca pierwszy element tablicy,
przy czym sama tablica zmniejsza się o ten element.
Wykorzystajmy teraz rekurencję:
<?php
function func($arr) {
var_dump(array_shift($arr));
var_dump($arr);
if (count($arr) !== 0) {
func($arr);
}
}
func([1, 2, 3]);
?>
Oczywiście, najprościej jest przejść po elementach tablicy pętlą. Przytoczone przykłady po prostu demonstrują działanie rekurencji na prostych przykładach (nie z życia wziętych). Bardziej przydatne przykłady zastosowania rekurencji są po prostu bardziej skomplikowane, przeanalizujemy je nieco poniżej.
Dana jest tablica:
<?php
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
?>
Za pomocą rekurencji wyświetl elementy tej tablicy na ekranie.