İç İç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.