Rekursija ar parametru PHP
Izmantosim rekursiju, lai secīgi izvadītu masīva elementus. Lai masīvs sākotnēji tiek nodots funkcijas parametram:
<?php
func([1, 2, 3]);
?>
Pagaidām bez rekursijas, izmantojot funkciju
array_shift
izvadīsim visus masīva elementus pēc kārtas:
<?php
function func($arr) {
var_dump(array_shift($arr)); // izvadīs 1
var_dump($arr); // izvadīs [2, 3] - masīvs samazinājies
var_dump(array_shift($arr)); // izvadīs 2
var_dump($arr); // izvadīs [3] - masīvs samazinājies
var_dump(array_shift($arr)); // izvadīs 3
var_dump($arr); // izvadīs [] - masīvs ir tukšs
}
func([1, 2, 3]);
?>
Kā jūs redzat, funkcija array_shift
izgriež un atgriež masīva pirmo elementu,
savukārt pats masīvs par šo elementu samazinās.
Tagad izmantosim rekursiju:
<?php
function func($arr) {
var_dump(array_shift($arr));
var_dump($arr);
if (count($arr) !== 0) {
func($arr);
}
}
func([1, 2, 3]);
?>
Patiesībā, protams, visvieglāk ir izmantot cilpu, lai izietu cauri masīva elementiem. Dotie piemēri vienkārši demonstrē rekursijas darbību ar vienkāršiem piemēriem (ne reāliem). Vairāk lietderīgi rekursijas pielietojuma piemēri vienkārši ir sarežģītāki, mēs tos apskatīsim nedaudz vēlāk.
Dots masīvs:
<?php
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
?>
Ar rekursijas palīdzību izvadiet šī masīva elementus uz ekrāna.