Recursie met een parameter in PHP
Laten we, met behulp van recursie, opeenvolgend de elementen van een array tonen. Laat de array aanvankelijk worden doorgegeven als parameter aan de functie:
<?php
func([1, 2, 3]);
?>
Laten we eerst zonder recursie, gebruikmakend van de functie
array_shift
alle elementen van de array een voor een tonen:
<?php
function func($arr) {
var_dump(array_shift($arr)); // toont 1
var_dump($arr); // toont [2, 3] - array is verkleind
var_dump(array_shift($arr)); // toont 2
var_dump($arr); // toont [3] - array is verkleind
var_dump(array_shift($arr)); // toont 3
var_dump($arr); // toont [] - array is leeg
}
func([1, 2, 3]);
?>
Zoals je ziet, de functie array_shift
verwijdert en retourneert het eerste element van de array,
terwijl de array zelf met dit element wordt verkleind.
Laten we nu recursie gebruiken:
<?php
function func($arr) {
var_dump(array_shift($arr));
var_dump($arr);
if (count($arr) !== 0) {
func($arr);
}
}
func([1, 2, 3]);
?>
Eigenlijk is het natuurlijk eenvoudiger om de elementen van de array met een lus te doorlopen. De gegeven voorbeelden dienen simpelweg om de werking van recursie te demonstreren aan de hand van eenvoudige (niet real-life) voorbeelden. Meer nutige voorbeelden van recursie zijn gewoon complexer, we zullen deze hieronder bespreken.
Gegeven de volgende array:
<?php
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
?>
Gebruik recursie om de elementen van deze array op het scherm weer te geven.