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 сүзсүз чакырууга болбойт - эгерде муну кылсак, анда функциялардын чексиз чакырылышы пайда болот.