Рэкурсія з параметрам у PHP
Давайце, з дапамогай рэкурсіі паслядоўна выведзем элементы масіва. Хай масіў першапачаткова перадаецца параметрам функцыі:
<?php
func([1, 2, 3]);
?>
Давайце пакуль без рэкурсіі з выкарыстаннем функцыі
array_shift
выведзем усе элементы масіва па чарзе:
<?php
function func($arr) {
var_dump(array_shift($arr)); // выведзе 1
var_dump($arr); // выведзе [2, 3] - масіў паменшыўся
var_dump(array_shift($arr)); // выведзе 2
var_dump($arr); // выведзе [3] - масіў паменшыўся
var_dump(array_shift($arr)); // выведзе 3
var_dump($arr); // выведзе [] - масіў пусты
}
func([1, 2, 3]);
?>
Як вы бачыце, функцыя array_shift
выразае і вяртае першы элемент масіва,
пры гэтым сам масіў паменшваецца на гэты элемент.
Давайце цяпер выкарастаем рэкурсію:
<?php
function func($arr) {
var_dump(array_shift($arr));
var_dump($arr);
if (count($arr) !== 0) {
func($arr);
}
}
func([1, 2, 3]);
?>
На самой справе, вядома ж, прасцей за ўсё перабраць элементы масіва цыклам. Прыведзеныя прыклады пакуль проста дэманструюць работу рэкурсіі на простых прыкладах (не жыццёвых). Больш карысныя прыклады ўжывання рэкурсіі проста больш складаныя, мы іх разбярэм крыху ніжэй.
Дадзены масіў:
<?php
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
?>
З дапамогай рэкурсіі выведзіце элементы гэтага масіва на экран.