Rekursioni me Parametër në PHP
Le të shfaqim në mënyrë sekuenciale elementët e vargut duke përdorur rekursion. Le të supozojmë se vargu fillimisht i transmetohet si parametër funksionit:
<?php
func([1, 2, 3]);
?>
Le të shfaqim të gjithë elementët e vargut njëri pas tjetrit
përdorim funksionin
array_shift
për momentin pa rekursion:
<?php
function func($arr) {
var_dump(array_shift($arr)); // do të shfaqë 1
var_dump($arr); // do të shfaqë [2, 3] - vargu u zvogëlua
var_dump(array_shift($arr)); // do të shfaqë 2
var_dump($arr); // do të shfaqë [3] - vargu u zvogëlua
var_dump(array_shift($arr)); // do të shfaqë 3
var_dump($arr); // do të shfaqë [] - vargu është bosh
}
func([1, 2, 3]);
?>
Siç e shihni, funksioni array_shift
pranon dhe kthen elementin e parë të vargut,
ndërkohë që vetë vargu zvogëlohet për atë element.
Le të përdorim tani rekursionin:
<?php
function func($arr) {
var_dump(array_shift($arr));
var_dump($arr);
if (count($arr) !== 0) {
func($arr);
}
}
func([1, 2, 3]);
?>
Në realitet, sigurisht, mënyra më e lehtë është të përsëriten elementët e vargut me një cikël. Shembujt e dhënë thjesht demonstrojnë punën e rekursionit në shembuj të thjeshtë (jo të jetës reale). Shembujt më të dobishëm të zbatimit të rekursionit janë më të ndërlikuar, ne do t'i shqyrtojmë pak më poshtë.
Është dhënë vargu:
<?php
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
?>
Duke përdorur rekursionin, shfaqni elementët e këtij vargu në ekran.