PHP

PHP Recursive Fonksiyonlar

Yazar - UĞUR

Recursive (öz yinelemeli) fonksiyonlar yani kendi kendini çağıran fonksiyonlar dır.

function say($num)
 {
     echo $num;
     if ($num < 10){
         say($num + 1);
     }
 }

 say(1); // 1'den 10'a kadar sayıları ekrana yazar.

Bu örnekte for ile yapabileceğimiz bir işi recursive fonksiyon ile yaptık. Daha gerçeğe yakın bir örneği inceleyelim:

 $categories = [
     [
         'id' => 1,
         'parent' => 0,
         'name' => 'PHP'
     ],
     [
         'id' => 2,
         'parent' => 0,
         'name' => 'CSS'
     ],
     [
         'id' => 3,
         'parent' => 0,
         'name' => 'HTML'
     ],
     [
         'id' => 4,
         'parent' => 1,
         'name' => 'PHP Fonksiyonlar'
     ],
     [
         'id' => 5,
         'parent' => 1,
         'name' => 'PHP Değişkenler'
     ],
     [
         'id' => 6,
         'parent' => 4,
         'name' => 'Recursive Fonksiyonlar'
     ],
     [
         'id' => 7,
         'parent' => 4,
         'name' => 'Anonim Fonksiyonlar'
     ],
     [
         'id' => 8,
         'parent' => 6,
         'name' => 'Recursive'
     ]
 ];

 function categoryList($categories, $parent = 0)
 {
       $html = '';
     $html .= '<ul>';
     foreach ($categories as $category){
         if ($category['parent'] == $parent){
             $html .= '<li>' . $category['name'];
                 $html .= categoryList($categories, $category['id']);
             $html .= '</li>';
         }
     }
     $html .= '</ul>';
     return $html;
 }

 echo categoryList($categories);

Yorum Yap

This site uses Akismet to reduce spam. Learn how your comment data is processed.