Práce s rekurzí v PHP

V programování existuje pojem rekurze - to je když funkce volá sama sebe. Podívejme se na příklad. Vypišme pomocí rekurze čísla od 1 do 10:

php<?php
  $i = 1;
  
  function func()
  {
    global $i;
    
    echo $i;
    $i++;
    
    if ($i <= 10){
      func(); // zde funkce volá sama sebe
    }
  }
  func();
?>

Pojďme diskutovat o tom, jak tento kód funguje.

Máme globální proměnnou $i a funkci func, uvnitř které se do konzole vypisuje obsah proměnné $i, a poté se provede ++.

Pokud je naše proměnná $i menší nebo rovna 10, je funkce volána znovu. Protože proměnná $i je globální, při každém novém volání funkce v ní bude hodnota proměnné $i nastavená při předchozím volání.

Výsledkem bude, že funkce bude volat sama sebe, dokud $i nebude větší než 10.

Mějte na paměti, že v našem případě nelze funkci spustit bez if - pokud to uděláte, vznikne nekonečné volání funkcí.