PHP-ում ռեկուրսիայի հետ աշխատելը
Ծրագրավորման մեջ կա այնպիսի հասկացություն, ինչպիսին է
ռեկուրսիան - երբ ֆունկցիան կանչում է
ինքն իրեն: Եկեք նայենք օրինակով:
Օգտագործելով ռեկուրսիա, արտածենք 1-ից
մինչև 10 թվերը:
<?php
$i = 1;
function func()
{
global $i;
echo $i;
$i++;
if ($i <= 10){
func(); // այստեղ ֆունկցիան կանչում է ինքն իրեն
}
}
func();
?>
Եկեք քննարկենք, թե ինչպես է աշխատում այս կոդը:
Մենք ունենք գլոբալ փոփոխական $i
և func ֆունկցիա, որի ներսում կոնսոլում
արտածվում է $i փոփոխականի պարունակությունը,
ապա կատարվում է ++:
Եթե մեր $i փոփոխականը փոքր է կամ
հավասար 10-ի, ապա ֆունկցիան կանչվում է կրկին:
Քանի որ $i փոփոխականը գլոբալ է,
ապա ֆունկցիայի ամեն նոր կանչի դեպքում դրանում
կլինի նախորդ կանչի ժամանակ սահմանված
$i փոփոխականի արժեքը:
Ստացվում է, որ ֆունկցիան կկանչի ինքն իրեն
մինչև $i-ը դառնա
10-ից մեծ:
Հաշվի առեք, որ մեր դեպքում ֆունկցիան անհնար է
գործարկել առանց if - եթե դա արվի,
ապա կստացվի ֆունկցիաների անվերջ կանչ: