PHP'de Geri Çağırım Fonksiyonları
Geri çağırım (callback), başka bir fonksiyona parametre olarak geçirilen fonksiyona denir.
Bir örnek üzerinden gidelim. Birinci parametre olarak bir sayı, ikinci parametre olarak da bir geri çağırım alan bir fonksiyonumuz olsun:
<?php
function func($num, $calb)
{
}
?>
Fonksiyonun içinde, iletilen sayı için geri çağırımımızın çağrılmasını sağlayalım:
<?php
function func($num, $calb)
{
echo $calb($num);
}
?>
Şimdi fonksiyonumuza geri çağırım iletmek için hangi seçeneklerin olduğuna bir bakalım.
Seçenek 1
Geri çağırımımız sıradan bir fonksiyon olabilir:
<?php
function calb($num) {
return $num ** 2;
}
?>
Bu durumda, geri çağırım olarak fonksiyonumuzun adını iletiriz:
<?php
func(3, 'calb');
?>
func fonksiyonunun içinde
geri çağırımımız ismiyle çağrılacaktır.
Seçenek 2
Geri çağırımımız, bir değişkene atanmış anonim bir fonksiyon olabilir:
<?php
$calb = function($num) {
return $num ** 2;
};
?>
Bu durumda, parametre olarak fonksiyonu tutan değişkeni iletiriz:
<?php
func(3, $calb);
?>
Seçenek 3
Anonim fonksiyon doğrudan parametre olarak iletilbilir:
<?php
func(3, function($num) {
return $num ** 2;
});
?>
Seçenek 4
Ok fonksiyonu kullanılarak kod kısaltılabilir:
<?php
func(3, fn($num) => $num ** 2);
?>
Pratik Görevler
Diziyi ve dizinin her bir elemanına uygulanacak bir geri çağırımı parametre olarak alan bir fonksiyon verilmiştir:
<?php
function func($arr, $calb)
{
$res = [];
foreach ($arr as $elem) {
$res[] = $calb($elem);
}
return $res;
}
?>
Sayılardan oluşan bir dizi ve iletilen sayının karesini alan bir geri çağırımı parametre olarak ileterek bu fonksiyonu çağırın.