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
$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.