PHP හි callback ශ්රිත
callback යනු වෙනත් ශ්රිතයකට පරාමිතියක් ලෙස මාරු කරනු ලබන ශ්රිතයකි.
අපි උදාහරණයක් බලමු. අප සතුව පළමු පරාමිතිය ලෙස අංකයක් පිළිගන්නා ශ්රිතයක් තිබේ යැයි සිතමු, දෙවන පරාමිතිය ලෙස - callback:
<?php
function func($num, $calb)
{
}
?>
ශ්රිතය තුළ අපගේ callback මාරු කරන ලද අංකය සඳහා කැඳවනු ලැබේ යැයි සකසමු:
<?php
function func($num, $calb)
{
echo $calb($num);
}
?>
දැන් අපි බලමු, අපගේ ශ්රිතයට callback යැවීම සඳහා කුමන විකල්ප තිබේද කියා.
විකල්පය 1
අපගේ callback සාමාන්ය ශ්රිතයක් විය හැකිය:
<?php
function calb($num) {
return $num ** 2;
}
?>
මෙම අවස්ථාවේ දී, callback ලෙස අපි අපගේ ශ්රිතයේ නම යවමු:
<?php
func(3, 'calb');
?>
func ශ්රිතය තුළ අපගේ
callback නමින් කැඳවනු ලැබේ.
විකල්පය 2
අපගේ callback නිර්නාමික ශ්රිතයක් විය හැකිය, විචල්යයකට ලියා ඇත:
<?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);
?>
ප්රායෝගික කාර්යයන්
අරාවක් පිළිගන්නා ශ්රිතයක් ලබා දී ඇත සහ callback, එය අරාවේ එක් එක් මූලද්රව්යයට යොදනු ලැබේ:
<?php
function func($arr, $calb)
{
$res = [];
foreach ($arr as $elem) {
$res[] = $calb($elem);
}
return $res;
}
?>
මෙම ශ්රිතය කැඳවන්න, පරාමිතිය ලෙස අංක සහිත අරාවක් සහ callback, යවන ලද අංකය වර්ග කරන.