Parametr ilə Rekursiya PHP-də
Gəlin, rekursiya köməyi ilə ardıcıl olaraq massivin elementlərini çap edək. Massiv əvvəlcə funksiyanın parametrinə ötürülsün:
<?php
func([1, 2, 3]);
?>
Gəlin hələlik rekursiya istifadə etmədən,
array_shift
funksiyasından istifadə edərək massivin bütün elementlərini növbə ilə çap edək:
<?php
function func($arr) {
var_dump(array_shift($arr)); // 1 çap edəcək
var_dump($arr); // [2, 3] çap edəcək - massiv kiçildi
var_dump(array_shift($arr)); // 2 çap edəcək
var_dump($arr); // [3] çap edəcək - massiv kiçildi
var_dump(array_shift($arr)); // 3 çap edəcək
var_dump($arr); // [] çap edəcək - massiv boşdur
}
func([1, 2, 3]);
?>
Gördüyünüz kimi, array_shift funksiyası
massivin birinci elementini kəsir və qaytarır,
bu zaman massivin özü də həmin element qədər kiçilir.
Gəlin indi rekursiyadan istifadə edək:
<?php
function func($arr) {
var_dump(array_shift($arr));
var_dump($arr);
if (count($arr) !== 0) {
func($arr);
}
}
func([1, 2, 3]);
?>
Əslində, əlbəttə ki, massivin elementlərini dövr ilə çap etmək daha asandır. Verilən nümunələr sadəcə olaraq rekursiyanın işini sadə (real həyatdan olmayan) nümunələr üzərində nümayiş etdirir. Rekursiyanın daha faydalı tətbiq nümunələri sadəcə olaraq daha mürəkkəbdir, biz onları bir az aşağıda nəzərdən keçirəcəyik.
Massiv verilib:
<?php
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
?>
Rekursiya köməyi ilə bu massivin elementlərini ekranda çap edin.