PHP Recursive Fonksiyonlar
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);