რეკურსიასთან მუშაობა PHP-ში

პროგრამირებაში არსებობს ისეთი კონცეფცია, როგორიცაა რეკურსია - ეს არის როდესაც ფუნქცია თავის თავს იძახებს. მოდით შევხედოთ მაგალითს. რეკურსიის გამოყენებით გამოვიტანოთ რიცხვები 1-დან 10-მდე:

php<?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-ის გარეშე - თუ ეს გაკეთდება, მიიღება ფუნქციების უსასრულო გამოძახება.