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
$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.