რეკურსია პარამეტრით 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];
?>
რეკურსიის გამოყენებით გამოიტანეთ ამ მასივის ელემენტები ეკრანზე.