Callback függvények PHP-ben
Callback függvénynek nevezzük azt a függvényt, amelyet paraméterként adunk át egy másik függvénynek.
Nézzünk egy példát. Tegyük fel, hogy van egy függvényünk, amely első paraméterként egy számot fogad, második paraméterként pedig egy callback-et:
<?php
function func($num, $calb)
{
}
?>
Tegyük úgy, hogy a függvényen belül a callbackünk meghívásra kerüljön az átadott számra:
<?php
function func($num, $calb)
{
echo $calb($num);
}
?>
Nézzük most meg, milyen lehetőségek vannak a callback függvény átadására.
1. lehetőség
A callback lehet egy sima függvény:
<?php
function calb($num) {
return $num ** 2;
}
?>
Ebben az esetben a callbackként a függvényünk nevét adjuk át:
<?php
func(3, 'calb');
?>
A func függvényen belül a
callback a neve alapján lesz meghívva.
2. lehetőség
A callback lehet egy anonim függvény, amelyet egy változóba mentünk:
<?php
$calb = function($num) {
return $num ** 2;
};
?>
Ebben az esetben paraméterként átadjuk a függvényt tartalmazó változót:
<?php
func(3, $calb);
?>
3. lehetőség
Az anonim függvényt közvetlenül át is adhatjuk paraméterként:
<?php
func(3, function($num) {
return $num ** 2;
});
?>
4. lehetőség
A kód rövidíthető nyíl függvény használatával:
<?php
func(3, fn($num) => $num ** 2);
?>
Gyakorlati feladatok
Adott egy függvény, amely paraméterként egy tömböt és egy callback-et fogad, amely a tömb minden elemére alkalmazva lesz:
<?php
function func($arr, $calb)
{
$res = [];
foreach ($arr as $elem) {
$res[] = $calb($elem);
}
return $res;
}
?>
Hívja meg ezt a függvényt, paraméterként átadva egy számokat tartalmazó tömböt és egy callback-et, amely az átadott számot négyzetre emeli.