Rekurzió paraméterrel PHP-ben
Írjuk ki a tömb elemeit egymás után rekurzió segítségével. Legyen a tömb eredetileg átadva a függvény paraméterének:
<?php
func([1, 2, 3]);
?>
Először rekurzió nélkül, a
array_shift
függvény segítségével írjuk ki a tömb összes elemét sorban:
<?php
function func($arr) {
var_dump(array_shift($arr)); // kiírja 1
var_dump($arr); // kiírja [2, 3] - a tömb megcsökkent
var_dump(array_shift($arr)); // kiírja 2
var_dump($arr); // kiírja [3] - a tömb megcsökkent
var_dump(array_shift($arr)); // kiírja 3
var_dump($arr); // kiírja [] - a tömb üres
}
func([1, 2, 3]);
?>
Amint látod, a array_shift
függvény kivágja és visszaadja a tömb első elemét,
eközben maga a tömb ezzel az elemmel csökken.
Most használjunk rekurziót:
<?php
function func($arr) {
var_dump(array_shift($arr));
var_dump($arr);
if (count($arr) !== 0) {
func($arr);
}
}
func([1, 2, 3]);
?>
Valójában természetesen a legegyszerűbb a tömb elemeit ciklussal bejárni. Az bemutatott példák egyszerűen csak a rekurzió működését demonstrálják egyszerű (nem valós) példákon. A rekurzió hasznosabb alkalmazási példái egyszerűen bonyolultabbak, ezeket alább megvizsgáljuk.
Adott a következő tömb:
<?php
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
?>
Rekurzió segítségével írd ki a tömb elemeit a képernyőre.