PHPдеги функция-коллбэктер
Коллбэк деп башка функцияга параметр катары берилген функция аталат.
Мисалга карап көрөлү. Бизде биринчи параметри катары санды, экинчи параметри катары коллбэкти кабыл алган функция бар болсун:
<?php
function func($num, $calb)
{
}
?>
Функциянын ичинде биздин коллбэк берилген сан үчүн чакырылсын деп кылалы:
<?php
function func($num, $calb)
{
echo $calb($num);
}
?>
Эми биздин функцияга коллбэк берүүнүн кандай мүмкүнчүлүктөрү бар экенин көрөлү.
1-вариант
Биздин коллбэк кадимки функция болушу мүмкүн:
<?php
function calb($num) {
return $num ** 2;
}
?>
Бул учурда коллбэк катары биз функциябыздын атын беребиз:
<?php
func(3, 'calb');
?>
func функциясынын ичинде биздин
коллбэк ат боюнча чакырылат.
2-вариант
Биздин коллбэк өзгөрмөгө жазылган анонимдик функция болушу мүмкүн:
<?php
$calb = function($num) {
return $num ** 2;
};
?>
Бул учурда биз параметр катары функциябызды камтыган өзгөрмөнү беребиз:
<?php
func(3, $calb);
?>
3-вариант
Анонимдик функцияны түз эле параметр катары берүүгө болот:
<?php
func(3, function($num) {
return $num ** 2;
});
?>
4-вариант
Кодду жеңилдетүү үчүн өркөч функциясын колдонсок болот:
<?php
func(3, fn($num) => $num ** 2);
?>
Практикалык маселелер
Массивди жана ар бир массив элементине колдонулуучу коллбэкти параметр катары кабыл алган функция берилген:
<?php
function func($arr, $calb)
{
$res = [];
foreach ($arr as $elem) {
$res[] = $calb($elem);
}
return $res;
}
?>
Сандарды камтыган массивди жана берилген санды квадратка көтөрүп берүүчү коллбэкти параметр катары берип, бул функцияны чакырыңыз.