Callback-functies in PHP
Een callback is een functie, die als parameter wordt doorgegeven aan een andere functie.
Laten we een voorbeeld bekijken. Stel we hebben een functie die als eerste parameter een getal accepteert, en als tweede parameter - een callback:
<?php
function func($num, $calb)
{
}
?>
Laten we ervoor zorgen dat binnen de functie onze callback wordt aangeroepen voor het doorgegeven getal:
<?php
function func($num, $calb)
{
echo $calb($num);
}
?>
Laten we nu bekijken welke opties er zijn om een callback aan onze functie door te geven.
Optie 1
Onze callback kan een gewone functie zijn:
<?php
function calb($num) {
return $num ** 2;
}
?>
In dit geval geven we als callback de naam van onze functie door:
<?php
func(3, 'calb');
?>
Binnen de functie func zal onze
callback bij naam worden aangeroepen.
Optie 2
Onze callback kan een anonieme functie zijn, opgeslagen in een variabele:
<?php
$calb = function($num) {
return $num ** 2;
};
?>
In dit geval geven we als parameter de variabele met onze functie door:
<?php
func(3, $calb);
?>
Optie 3
Je kunt de anonieme functie direct als parameter doorgeven:
<?php
func(3, function($num) {
return $num ** 2;
});
?>
Optie 4
Je kunt de code verkorten door gebruik te maken van een pijlfunctie:
<?php
func(3, fn($num) => $num ** 2);
?>
Praktische opdrachten
Gegeven een functie die als parameter een array en een callback accepteert, die wordt toegepast op elk element van de array:
<?php
function func($arr, $calb)
{
$res = [];
foreach ($arr as $elem) {
$res[] = $calb($elem);
}
return $res;
}
?>
Roep deze functie aan, waarbij je als parameter een array met getallen en een callback doorgeeft, die het doorgegeven getal kwadrateert.