İç İç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.
1 2 3 4 5 6 7 8 9 |
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:
1 2 3 4 5 6 7 |
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
$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.