14- PHP'de Recursive (Kendin Tekrar Eden) Fonksiyonlar

Recursive Fonksiyonların Temel İlkesi

Recursive fonksiyonlar, bir fonksiyonun kendi içinde çağrılmasına dayalı bir programlama konseptidir. Bu tür fonksiyonlar genellikle belirli bir problemi daha küçük parçalara bölerek çözerler. Bu ders notları, PHP'de recursive fonksiyonların nasıl yazılacağını, çalışma prensiplerini ve farklı kullanım senaryolarını anlatmaktadır.

1. Temel Recursive Fonksiyon Örneği

<?php
// 1'den n'e kadar olan sayıları toplayan recursive fonksiyon
function toplam($n) {
if ($n == 1) {
return 1;
} else {
return $n + toplam($n - 1);
}
}

// Fonksiyonu kullanma
$sonuc = toplam(5);
echo "Toplam: $sonuc";
?>

Açıklama:

  • Fonksiyon, kendisini n'e kadar olan sayılarla çağırarak toplamı hesaplar.
  • if ($n == 1) şartı, fonksiyonun kendini tekrar etmeyi durdurmasını sağlar.

2. Faktöriyel Hesaplama

<?php
// Faktöriyel hesaplayan recursive fonksiyon
function faktoriyel($n) {
if ($n == 0 || $n == 1) {
return 1;
} else {
return $n * faktoriyel($n - 1);
}
}

// Fonksiyonu kullanma
$sonuc = faktoriyel(5);
echo "5 faktöriyel: $sonuc";
?>

Açıklama:

  • Fonksiyon, kendisini n'e kadar olan sayılarla çağırarak faktöriyel hesaplar.
  • if ($n == 0 || $n == 1) şartı, faktöriyel hesabını durdurur.

3. Diziyi Toplayan Recursive Fonksiyon

<?php
// Bir diziyi toplayan recursive fonksiyon
function diziToplam($dizi, $index) {
if ($index == count($dizi)) {
return 0;
} else {
return $dizi[$index] + diziToplam($dizi, $index + 1);
}
}

// Fonksiyonu kullanma
$dizi = [1, 2, 3, 4, 5];
$sonuc = diziToplam($dizi, 0);
echo "Dizi Toplamı: $sonuc";
?>

Açıklama:

  • Fonksiyon, bir diziyi indeksleri aracılığıyla toplar.
  • if ($index == count($dizi)) şartı, dizinin sonuna ulaşıldığında toplama işlemini durdurur.

4. Fibonacci Sayıları

<?php
// Fibonacci sayılarını üreten recursive fonksiyon
function fibonacci($n) {
if ($n <= 1) {
return $n;
} else {
return fibonacci($n - 1) + fibonacci($n - 2);
}
}

// İlk 10 Fibonacci sayısını ekrana yazdırma
for ($i = 0; $i < 10; $i++) {
echo fibonacci($i) . " ";
}
?>

Açıklama:

  • Fibonacci sayıları, bir sayının kendisinden önce gelen iki sayının toplamıdır.
  • Fonksiyon, kendisini iki farklı girişle çağırarak Fibonacci sayılarını üretir.