Рекурзија со параметар во 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];
?>
Со помош на рекурзија испишете ги елементите од оваа низа на екран.