Rekurzija s parametrom v PHP
Z rekurzijo zaporedoma izpišimo elemente polja. Naj bo polje na začetku posredovano parametrom funkcije:
php<?php
func([1, 2, 3]);
?>
Za zdaj brez rekurzije z uporabo funkcije
array_shift
izpišimo vse elemente polja enega za drugim:
php<?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<?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.
Задание 1
Podano je polje:
php<?php
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
?>
Z rekurzijo izpišite elemente tega polja na zaslon.