Kufanya Kazi na Ukurursaji katika PHP

Katika programu kuna dhana inayoitwa ukurursaji - hii ni wakati kitendo kinajiita yenyewe. Hebu tuangalie kwa mfano. Tuonyeshe kwa kutumia ukurursaji nambari kutoka 1 hadi 10:

php<?php
  $i = 1;
  
  function func()
  {
    global $i;
    
    echo $i;
    $i++;
    
    if ($i <= 10){
      func(); // hapa kitendo kinajiita yenyewe
    }
  }
  func();
?>

Hebu tujadili, msimbo huu unafanyaje kazi.

Tuna kigeugeu cha global $i na kitendo func, ndani yake kwenye konokono kinatolewa yaliyomo kwenye kigeugeu $i, kisha hufanywa ++.

Ikiwa kigeugeu chetu $i ni kidogo au sawa na 10, basi kitendo huitwa tena. Kwa sababu kigeugeu $i ni cha global, basi kwa kila wito mpya wa kitendo ndani yake kutakuwa na thamani iliyowekwa wito uliopita ya kigeugeu $i.

Itatokea kwamba kitendo kitajiita yenyewe hadi $i isizidi 10.

Zingatia kwamba katika kesi yetu haiwezekani kitendo kuzinduliwa bila if - ikiwa hii itafanyika, basi itatokea wito usio na mwisho wa vitendo.