Rekursijas darbs PHP

Programmēšanā pastāv tāds jēdziens kā rekursija - tas ir, kad funkcija izsauc pati sevi. Apskatīsim to ar piemēru. Izmantosim rekursiju, lai izvadītu skaitļus no 1 līdz 10:

php<?php
  $i = 1;
  
  function func()
  {
    global $i;
    
    echo $i;
    $i++;
    
    if ($i <= 10){
      func(); // šeit funkcija izsauc pati sevi
    }
  }
  func();
?>

Pārrunāsim, kā šis kods strādā.

Mums ir globālais mainīgais $i un funkcija func, kuras iekšienē konsolē tiek izvadīts mainīgā $i saturs, un pēc tam tiek veikts ++.

Ja mūsu mainīgais $i ir mazāks vai vienāds ar 10, tad funkcija tiek izsaukta atkārtoti. Tā kā mainīgais $i ir globāls, tad katrā jaunā funkcijas izsaukumā tajā būs iepriekšējā izsaukumā iestatītā mainīgā $i vērtība.

Izrādīsies, ka funkcija izsauks pati sevi līdz brīdim, kad $i kļūs lielāks par 10.

Ņemiet vērā, ka mūsu gadījumā nevar palaist funkciju bez if - ja to izdarītu, tad iegūtu bezgalīgu funkciju izsaukšanu.