Rekursio PHP:ssä

Ohjelmoinnissa on käsite nimeltä rekursio - tämä tarkoittaa tilannetta, jossa funktio kutsuu itseään. Katsotaanpa esimerkkiä. Tulostetaan rekursion avulla numerot 1 10:

php<?php
  $i = 1;
  
  function func()
  {
    global $i;
    
    echo $i;
    $i++;
    
    if ($i <= 10){
      func(); // tässä funktio kutsuu itseään
    }
  }
  func();
?>

Keskustellaan kuinka tämä koodi toimii.

Meillä on globaali muuttuja $i ja funktio func, jonka sisällä konsoliin tulostetaan muuttujan $i sisältö, minkä jälkeen tehdään ++.

Jos muuttujamme $i on pienempi tai yhtä suuri kuin 10, funktiota kutsutaan uudelleen. Koska muuttuja $i on globaali, jokaisessa funktion uudessa kutsussa siinä on edellisessä kutsussa asetettu muuttujan $i arvo.

Käy niin, että funktio kutsuu itseään kunnes $i tulee suuremmaksi kuin 10.

Huomioi, että meidän tapauksessamme funktiota ei voi käynnistää ilman if - jos näin tehdään, se johtaa äärettömään funktiokutsujen ketjuun.