PHP-de rekursiýa bilen işlemek

Programmirlemede rekursiýa diýen düşünje bar - bu funksiýanyň özüni çağyryşy. Mysal üçin seredeli. 1-den 10-a çenli sanlary rekursiýa ýardamynda çap edeli:

php<?php
  $i = 1;
  
  function func()
  {
    global $i;
    
    echo $i;
    $i++;
    
    if ($i <= 10){
      func(); // bu ýerde funksiýa özüni çağyrýar
    }
  }
  func();
?>

Geliň, bu kodunyň nähili işleýändigini görüşeli.

Bizde $i global üýtgeýjisi we func funksiýasy bar, onuň içinde konsola $i üýtgeýjisiniň mazmuny çap edilýär, soňra bolsa ++ amaly ýerine ýetirilýär.

Eger $i üýtgeýjimiz 10-dan kiçi ýa-da deň bolsa, funksiýa gaýtadan çağyrylýar. $i üýtgeýjisi global bolany üçin, funksiýanyň her täze çağyrylyşynda onda öňki çağyryşda berlen $i üýtgeýjisiniň bahasy boljak.

Funksiýa $i 10-dan uly bolýança özüni çağıryp durar.

Ýatda saklaň, bizim mysalynda funksiýany if sözçügini ulanmaksyz işletmek bolmaz - eger muny etsek, çäkli däl funksiýa çağyryşlary alarys.