Callback функције у PHP-у
Callback функција је функција која се прослеђује као параметар другој функцији.
Погледајмо на примеру. Рецимо да имамо функцију која као први параметар прима број, а као други параметар - callback функцију:
<?php
function func($num, $calb)
{
}
?>
Направићемо да унутар функције наш callback буде позван са прослеђеним бројем:
<?php
function func($num, $calb)
{
echo $calb($num);
}
?>
Хајде сада да видимо које варианте прослеђивања callback функције имамо.
Вариант 1
Наш callback може да буде обична функција:
<?php
function calb($num) {
return $num ** 2;
}
?>
У том случају као callback прослеђујемо име наше функције:
<?php
func(3, 'calb');
?>
Унутар функције func наш
callback ће бити позван по том имену.
Вариант 2
Наш callback може да буде анонимна функција, уписанa у променљиву:
<?php
$calb = function($num) {
return $num ** 2;
};
?>
У том случају као параметар прослеђујемо променљиву у којој је наша функција:
<?php
func(3, $calb);
?>
Вариант 3
Може се проследити анонимна функција директно као параметар:
<?php
func(3, function($num) {
return $num ** 2;
});
?>
Вариант 4
Код се може скратити коришћењем arrow функције:
<?php
func(3, fn($num) => $num ** 2);
?>
Практични задаци
Дата је функција, која као параметар прима низ и callback, који ће се применити на сваки елемент низа:
<?php
function func($arr, $calb)
{
$res = [];
foreach ($arr as $elem) {
$res[] = $calb($elem);
}
return $res;
}
?>
Позовите ову функцију, као параметар проследивши низ са бројевима и callback, који прослеђени број квадрира.