Rekursion med parameter i PHP
Lad os ved hjælp af rekursion sekventielt udskrive elementerne i et array. Lad arrayet oprindeligt blive transmitteret til funktionens parameter:
<?php
func([1, 2, 3]);
?>
Lad os uden rekursion, ved at bruge funktionen
array_shift
udskrive alle arrayets elementer én efter én:
<?php
function func($arr) {
var_dump(array_shift($arr)); // udskriver 1
var_dump($arr); // udskriver [2, 3] - arrayet er blevet mindre
var_dump(array_shift($arr)); // udskriver 2
var_dump($arr); // udskriver [3] - arrayet er blevet mindre
var_dump(array_shift($arr)); // udskriver 3
var_dump($arr); // udskriver [] - arrayet er tomt
}
func([1, 2, 3]);
?>
Som du kan se, skærer funktionen array_shift
den første element ud af arrayet og returnerer den,
samtidig med at arrayet selv bliver mindre med dette element.
Lad os nu bruge rekursion:
<?php
function func($arr) {
var_dump(array_shift($arr));
var_dump($arr);
if (count($arr) !== 0) {
func($arr);
}
}
func([1, 2, 3]);
?>
Selvfølgelig er det nemmeste i virkeligheden at gennemgå arrayets elementer med en løkke. De givne eksempler demonstrerer simpelthen rekursionens funktion med simple eksempler (ikke livsagtige). Mere nyttige eksempler på anvendelse af rekursion er bare mere komplekse, vi vil gennemgå dem lidt nedenfor.
Givet et array:
<?php
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
?>
Med hjælp fra rekursion, udskriv elementerne fra dette array på skærmen.