Callback funkcije v PHP-ju
Callback je funkcija, ki se posreduje kot parameter drugi funkciji.
Poglejmo si primer. Recimo, da imamo funkcijo, ki sprejme število kot prvi parameter, in callback kot drugi parameter:
<?php
function func($num, $calb)
{
}
?>
Naredimo tako, da znotraj funkcije naš callback pokličemo za posredovano število:
<?php
function func($num, $calb)
{
echo $calb($num);
}
?>
Poglejmo si zdaj, katere možnosti posredovanja callbacka v našo funkcijo obstajajo.
Možnost 1
Naš callback je lahko običajna funkcija:
<?php
function calb($num) {
return $num ** 2;
}
?>
V tem primeru kot callback posredujemo ime naše funkcije:
<?php
func(3, 'calb');
?>
Znotraj funkcije func bo naš
callback poklican po imenu.
Možnost 2
Naš callback je lahko anonimna funkcija, zapisana v spremenljivko:
<?php
$calb = function($num) {
return $num ** 2;
};
?>
V tem primeru kot parameter posredujemo spremenljivko z našo funkcijo:
<?php
func(3, $calb);
?>
Možnost 3
Anonimno funkcijo lahko posredujemo takoj kot parameter:
<?php
func(3, function($num) {
return $num ** 2;
});
?>
Možnost 4
Kodo lahko skrajšamo z uporabo strelične funkcije:
<?php
func(3, fn($num) => $num ** 2);
?>
Praktične naloge
Podana je funkcija, ki kot parameter sprejme tabelo in callback, ki se uporabi za vsak element tabele:
<?php
function func($arr, $calb)
{
$res = [];
foreach ($arr as $elem) {
$res[] = $calb($elem);
}
return $res;
}
?>
Pokličite to funkcijo, kot parameter posredujte tabelo s števili in callback, ki posredovano število kvadrira.