PHP-də callback funksiyaları
Callback başqa bir funksiyaya parametr kimi ötürülən funksiyaya deyilir.
Gəlin bir nümunəyə baxaq. Tutaq ki, bizim bir funksiyamız var ki, birinci parametr kimi bir rəqəm, ikinci parametr kimi isə bir callback qəbul edir:
<?php
function func($num, $calb)
{
}
?>
Gəlin elə edək ki, funksiyanın daxilində bizim callbackimiz ötürülən rəqəm üçün çağırılsın:
<?php
function func($num, $calb)
{
echo $calb($num);
}
?>
İndi gəlin görək funksiyamıza callback ötürməyin hansı variantları var.
Variant 1
Bizim callbackimiz adi bir funksiya ola bilər:
<?php
function calb($num) {
return $num ** 2;
}
?>
Bu halda callback kimi biz öz funksiyamızın adını ötürəcəyik:
<?php
func(3, 'calb');
?>
func funksiyasının daxilində bizim callbackimiz adı ilə çağırılacaq.
Variant 2
Bizim callbackimiz dəyişənə yazılmış anonim funksiya ola bilər:
<?php
$calb = function($num) {
return $num ** 2;
};
?>
Bu halda biz parametr kimi funksiyamız olan dəyişəni ötürürük:
<?php
func(3, $calb);
?>
Variant 3
Anonim funksiyanı birbaşa parametr kimi ötürmək olar:
<?php
func(3, function($num) {
return $num ** 2;
});
?>
Variant 4
Ox funksiyasından istifadə edərək kodu qısaltmaq olar:
<?php
func(3, fn($num) => $num ** 2);
?>
Praktiki tapşırıqlar
Massiv və hər bir massiv elementinə tətbiq olunacaq callback qəbul edən bir funksiya verilib:
<?php
function func($arr, $calb)
{
$res = [];
foreach ($arr as $elem) {
$res[] = $calb($elem);
}
return $res;
}
?>
Rəqəmlərdən ibarət massivi və ötürülən rəqəmin kvadratını qaytaran callback-i parametr kimi ötürərək bu funksiyanı çağırın.