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 може да биде анонимна функција, запишана во променлива:
<?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);
?>
Практични задачи
Дадена е функција, која како параметар прифаќа низа и callback, кој ќе се примени на секој елемент од низата:
<?php
function func($arr, $calb)
{
$res = [];
foreach ($arr as $elem) {
$res[] = $calb($elem);
}
return $res;
}
?>
Повикајте ја оваа функција, како параметар пренесувајќи низа со броеви и callback, кој го подига пренесениот број на квадрат.