İç İçe Fonksiyonun (Recursive Function) PHP’de kullanımı
Selamün Aleyküm Arkadaşlar;
Fonksiyonun içinde işlem bitene kadar, tekrar tekrar o fonksiyonu çağırabiliriz. Bu işleme iç içe fonksiyon (recursive function) denir.
Örnek olarak bir faktoriyel işlemini for döngüsüyle değilde, iç içe fonksiyonla yapalım.
function faktoriyel($n)
{
if($n==0)
return 1;
else
return $n * faktoriyel($n-1);
}
echo faktoriyel(5);
Burada $n değişkeni sıfırdan farklı olduğu sürece döner. faktoriyel fonksiyonunu çağırır.
Adım adım işleme bakacak olursak:
return $n * faktoriyel($n-1) //5 * faktoriyel(4) return $n * faktoriyel($n-1) //faktoriyel(4) = 4 * faktoriyel(3) return $n * faktoriyel($n-1) //faktoriyel(3) = 3 * faktoriyel(2) return $n * faktoriyel($n-1) //faktoriyel(2) = 2 * faktoriyel(1) return $n * faktoriyel($n-1) //faktoriyel(1) = 1 * faktoriyel(0) return faktoriyel(0)=1 //$n==0 olduğundan geriye 1 değerini döndürerek fonksiyonunu bitirir. //return 5*4*3*2*1*1
Başka bir örnek olarak bir dizinin içinde olan değeri yazdıralım.
$dizi=array(
array(
array(
array(
array(
array(
array(
array(
array(
array(
array(
'Merhaba Dünya!'
)
)
)
)
)
)
)
)
)
)
);
function dizideger($dizi)
{
foreach ($dizi as $deger)
{
if(is_array($deger))
return dizideger($deger);
else
return $deger;
}
}
echo dizideger($dizi); //Ekran çıktısı Merhaba Dünya!
Hayırlı günler, sağlıcakla kalın.
Bu döküman www.ibasoglu.com’a aittir. Kaynak belirtmek suretiyle alıntı yapılabilir.