Callback funkce v PHP
Callback je funkce, která je předána jako parametr do jiné funkce.
Podívejme se na příklad. Předpokládejme, že máme funkci, která jako první parametr přijímá číslo, a jako druhý parametr - callback:
<?php
function func($num, $calb)
{
}
?>
Udělejme, aby uvnitř funkce byl náš callback volán pro předané číslo:
<?php
function func($num, $calb)
{
echo $calb($num);
}
?>
Nyní se podívejme, jaké existují možnosti předání callbacku do naší funkce.
Možnost 1
Náš callback může být obyčejná funkce:
<?php
function calb($num) {
return $num ** 2;
}
?>
V tomto případě jako callback předáme jméno naší funkce:
<?php
func(3, 'calb');
?>
Uvnitř funkce func bude náš
callback volán podle jména.
Možnost 2
Náš callback může být anonymní funkce, zapsaná do proměnné:
<?php
$calb = function($num) {
return $num ** 2;
};
?>
V tomto případě parametrem předáme proměnnou s naší funkcí:
<?php
func(3, $calb);
?>
Možnost 3
Lze předat anonymní funkci okamžitě parametrem:
<?php
func(3, function($num) {
return $num ** 2;
});
?>
Možnost 4
Kód lze zkrátit použitím arrow funkce:
<?php
func(3, fn($num) => $num ** 2);
?>
Praktické úlohy
Je dána funkce, která parametrem přijímá pole a callback, který se aplikuje na každý prvek pole:
<?php
function func($arr, $calb)
{
$res = [];
foreach ($arr as $elem) {
$res[] = $calb($elem);
}
return $res;
}
?>
Volejte tuto funkci, jako parametr předávejte pole s čísly a callback, který umocní předané číslo na druhou.