PHP-тегі қайта шақыру функциялары
Қайта шақыру деп басқа функцияға параметр ретінде берілетін функцияны айтады.
Мысалға қарайық. Бізде бірінші параметр ретінде санды қабылдайтын, ал екінші параметр ретінде - қайта шақыруды қабылдайтын функция бар делік:
<?php
function func($num, $calb)
{
}
?>
Функция ішінде біздің қайта шақырудың берілген сан үшін шақырылуын жасайық:
<?php
function func($num, $calb)
{
echo $calb($num);
}
?>
Енді функциямызға қайта шақыруды берудің қандай нұсқалары бар екенін көрейік.
Нұсқа 1
Біздің қайта шақыру кәдімгі функция болуы мүмкін:
<?php
function calb($num) {
return $num ** 2;
}
?>
Бұл жағдайда қайта шақыру ретінде біз функциямыздың атауын береміз:
<?php
func(3, 'calb');
?>
func функциясы ішінде біздің
қайта шақыру атауы бойынша шақырылады.
Нұсқа 2
Біздің қайта шақыру анонимді функция болуы мүмкін, ол айнымалыға жазылған:
<?php
$calb = function($num) {
return $num ** 2;
};
?>
Бұл жағдайда біз параметр ретінде функциямыз бар айнымалыны береміз:
<?php
func(3, $calb);
?>
Нұсқа 3
Анонимді функцияны дереу параметр ретінде беруге болады:
<?php
func(3, function($num) {
return $num ** 2;
});
?>
Нұсқа 4
Стрелкалық функцияны қолданып, кодты қысқартуға болады:
<?php
func(3, fn($num) => $num ** 2);
?>
Практикалық есептер
Массивті және әрбір массив элементіне қолданылатын қайта шақыруды параметр ретінде қабылдайтын функция берілген:
<?php
function func($arr, $calb)
{
$res = [];
foreach ($arr as $elem) {
$res[] = $calb($elem);
}
return $res;
}
?>
Сандары бар массивті және берілген санды квадратқа шығаратын қайта шақыруды параметр ретінде беріп, осы функцияны шақырыңыз.