PHP-da Callback funksiyalari
Callback deb parametr sifatida boshqa funktsiyaga uzatiladigan funktsiyaga aytiladi.
Keling, bir misolni ko'rib chiqaylik. Faraz qilaylik, bizda birinchi parametr sifatida raqamni, ikkinchi parametr sifatida esa callbackni qabul qiladigan funktsiya bor:
<?php
function func($num, $calb)
{
}
?>
Keling, funktsiya ichida berilgan raqam uchun bizning callbackimiz chaqirilsin:
<?php
function func($num, $calb)
{
echo $calb($num);
}
?>
Keling, endi bizning funktsiyamizga callbackni uzatishning qanday variantlari borligini ko'rib chiqaylik.
Variant 1
Bizning callbackimiz oddiy funktsiya bo'lishi mumkin:
<?php
function calb($num) {
return $num ** 2;
}
?>
Bunda callback sifatida biz o'z funktsiyamiz nomini uzatamiz:
<?php
func(3, 'calb');
?>
func funktsiyasi ichida bizning
callbackimiz nomi bilan chaqiriladi.
Variant 2
Bizning callbackimiz o'zgaruvchiga yozilgan anonim funktsiya bo'lishi mumkin:
<?php
$calb = function($num) {
return $num ** 2;
};
?>
Bunda biz parametr sifatida funktsiyani o'z ichiga olgan o'zgaruvchini uzatamiz:
<?php
func(3, $calb);
?>
Variant 3
Anonim funktsiyani darhol parametr sifatida uzatish mumkin:
<?php
func(3, function($num) {
return $num ** 2;
});
?>
Variant 4
O'q funktsiyasidan foydalanib, kodni qisqartirish mumkin:
<?php
func(3, fn($num) => $num ** 2);
?>
Amaliy mashqlar
Massivni va har bir massiv elementiga qo'llaniladigan callbackni parametr sifatida qabul qiluvchi funktsiya berilgan:
<?php
function func($arr, $calb)
{
$res = [];
foreach ($arr as $elem) {
$res[] = $calb($elem);
}
return $res;
}
?>
Raqamlar bilan massiv va berilgan sonni kvadratga ko'taradigan callbackni parametr sifatida uzatib, ushbu funktsiyani chaqiring.