Rekursijos darbas PHP

Programavime yra tokia sąvoka kaip rekursija - tai kai funkcija iškviečia pati save. Pažiūrėkime pavyzdžiu. Išveskime naudojant rekursiją skaičius nuo 1 iki 10:

php<?php
  $i = 1;
  
  function func()
  {
    global $i;
    
    echo $i;
    $i++;
    
    if ($i <= 10){
      func(); // čia funkcija iškviečia pati save
    }
  }
  func();
?>

Aptarkime, kaip šis kodas veikia.

Mes turime globalų kintamąjį $i ir funkciją func, kurios viduje į konsolę išvedamas kintamojo $i turinys, o tada daromas ++.

Jei mūsų kintamasis $i yra mažesnis arba lygus 10, tai funkcija iškviečiama pakartotinai. Kadangi kintamasis $i yra globalus, tai kiekvienu nauju funkcijos iškvietimu jame bus nustatyta ankstesniame iškvietime nurodyta kintamojo $i reikšmė.

Pasirodo, kad funkcija kviestis pati save tol, kol $i netaps didesnis už 10.

Turėkite omenyje, kad mūsų atveju funkcijos negalima paleisti be if - jei tai padaryti, gausis begalinis funkcijų iškvietimas.