Rekurzija s parametrom v PHP
Z rekurzijo zaporedoma izpišimo elemente polja. Naj bo polje na začetku posredovano parametrom funkcije:
<?php
func([1, 2, 3]);
?>
Za zdaj brez rekurzije z uporabo funkcije
array_shift
izpišimo vse elemente polja enega za drugim:
<?php
function func($arr) {
var_dump(array_shift($arr)); // izpiše 1
var_dump($arr); // izpiše [2, 3] - polje se je zmanjšalo
var_dump(array_shift($arr)); // izpiše 2
var_dump($arr); // izpiše [3] - polje se je zmanjšalo
var_dump(array_shift($arr)); // izpiše 3
var_dump($arr); // izpiše [] - polje je prazno
}
func([1, 2, 3]);
?>
Kot lahko vidite, funkcija array_shift
izreže in vrne prvi element polja,
medtem ko se samo polje zmanjša za ta element.
Zdaj pa uporabimo rekurzijo:
<?php
function func($arr) {
var_dump(array_shift($arr));
var_dump($arr);
if (count($arr) !== 0) {
func($arr);
}
}
func([1, 2, 3]);
?>
Pravzaprav je seveda najlažje prebrati elemente polja z zanko. Navedeni primeri so preprosto prikaz delovanja rekurzije na preprostih primerih (ne iz resnične prakse). Bolj uporabni primeri uporabe rekurzije so preprosto bolj zapleteni, analizirali jih bomo malo kasneje.
Podano je polje:
<?php
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
?>
Z rekurzijo izpišite elemente tega polja na zaslon.