PHPda rekursiya bilan ishlash

Dasturlashda rekursiya deb ataladigan tushuncha mavjud - bu funktsiya o'zini o'zi chaqiradi. Keling, buni misol bilan ko'rib chiqaylik. Rekursiya yordamida 1 dan 10 gacha bo'lgan sonlarni chiqaramiz:

php<?php
  $i = 1;
  
  function func()
  {
    global $i;
    
    echo $i;
    $i++;
    
    if ($i <= 10){
      func(); // bu yerda funktsiya o'zini o'zi chaqiradi
    }
  }
  func();
?>

Keling, ushbu kod qanday ishlashini muhokama qilaylik.

Bizda global $i o'zgaruvchisi va func funktsiyasi mavjud, uning ichida konsolga $i o'zgaruvchisining tarkibi chiqariladi, so'ngra ++ amalga oshiriladi.

Agar bizning $i o'zgaruvchimiz 10 dan kichik yoki teng bo'lsa, funktsiya qayta chaqiriladi. $i o'zgaruvchi global bo'lgani uchun, har bir yangi funktsiya chaqiruvida unda oldingi chaqiruvda belgilangan $i o'zgaruvchisining qiymati bo'ladi.

Natijada, funktsiya $i 10 dan katta bo'lgunga qadar o'zini o'zi chaqiraveradi.

E'tiboringizni qaratamiz, bizning holatda funktsiyani if siz ishga tushirib bo'lmaydi - agar buni qilsak, cheksiz funktsiya chaqiruvlari paydo bo'ladi.