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