PHP atgalinio kvietimo funkcijos
Atgalinio kvietimo funkcija yra funkcija, kuri perduodama kaip parametras į kitą funkciją.
Pažiūrėkime pavyzdį. Tarkime, kad turime funkciją, kuri pirmu parametru priima skaičių, o antru parametru - atgalinio kvietimo funkciją:
<?php
function func($num, $calb)
{
}
?>
Padarykime taip, kad funkcijos viduje mūsų atgalinio kvietimo funkcija būtų iškviesta su perduotu skaičiumi:
<?php
function func($num, $calb)
{
echo $calb($num);
}
?>
Dabar pažiūrėkime, kokie yra atgalinio kvietimo funkcijos perdavimo į mūsų funkciją variantai.
1 variantas
Mūsų atgalinio kvietimo funkcija gali būti įprasta funkcija:
<?php
function calb($num) {
return $num ** 2;
}
?>
Šiuo atveju kaip atgalinio kvietimo funkciją mes perduosime mūsų funkcijos pavadinimą:
<?php
func(3, 'calb');
?>
Funkcijos func viduje mūsų
atgalinio kvietimo funkcija bus iškviesta pagal pavadinimą.
2 variantas
Mūsų atgalinio kvietimo funkcija gali būti anonime funkcija, įrašyta į kintamąjį:
<?php
$calb = function($num) {
return $num ** 2;
};
?>
Šiuo atveju mes parametru perduodame kintamąjį su mūsų funkcija:
<?php
func(3, $calb);
?>
3 variantas
Galima perduoti anonime funkciją iškart kaip parametrą:
<?php
func(3, function($num) {
return $num ** 2;
});
?>
4 variantas
Galima sutrumpinti kodą, naudojant rodyklinę funkciją:
<?php
func(3, fn($num) => $num ** 2);
?>
Praktinės užduotys
Duota funkcija, parametru priimanti masyvą ir atgalinio kvietimo funkciją, kuri bus pritaikyta kiekvienam masyvo elementui:
<?php
function func($arr, $calb)
{
$res = [];
foreach ($arr as $elem) {
$res[] = $calb($elem);
}
return $res;
}
?>
Iškvieskite šią funkciją, kaip parametrą perduodant masyvą su skaičiais ir atgalinio kvietimo funkciją, kuri pakelia perduotą skaičių kvadratu.