Delo z rekurzijo v PHP

V programiranju obstaja koncept, imenovan rekurzija - to je, ko funkcija kliče samo sebe. Poglejmo si primer. Izpišimo s pomočjo rekurzije števila od 1 do 10:

php<?php
  $i = 1;
  
  function func()
  {
    global $i;
    
    echo $i;
    $i++;
    
    if ($i <= 10){
      func(); // tukaj funkcija kliče samo sebe
    }
  }
  func();
?>

Razpravljajmo, kako ta koda deluje.

Imamo globalno spremenljivko $i in funkcijo func, znotraj katere se v konzolo izpiše vsebina spremenljivke $i, nato pa se izvede ++.

Če je naša spremenljivka $i manjša ali enaka 10, se funkcija pokliče znova. Ker je spremenljivka $i globalna, bo ob vsakem novem klicu funkcije v njej shranjena vrednost spremenljivke $i določena ob prejšnjem klicu.

Izkazalo se bo, da bo funkcija klicala samo sebe, dokler $i ne postane večja od 10.

Upoštevajte, da v našem primeru funkcije ne moremo zagnati brez if - če to storimo, bo prišlo do neskončnega klica funkcij.