Рекурзија са параметром у ПХП-у
Хајде да, уз помоћ рекурзије, узастопно испишемо елементе низа. Нека низ иницијално буде прослеђен као параметар функцији:
<?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];
?>
Уз помоћ рекурзије испишите елементе овог низа на екран.