PHP တွင် Callback Functions
Callback သည် အခြားလုပ်ဆောင်ချက်တစ်ခုထံသို့ သတ်မှတ်ချက်တစ်ခုအဖြစ် လက်ခံသော လုပ်ဆောင်ချက်ဖြစ်သည်။
ဥပမာတစ်ခုကို ကြည့်ရအောင်။ ကျွန်ုပ်တို့တွင် ပထမသတ်မှတ်ချက်အဖြစ် ဂဏန်းတစ်ခုကို လက်ခံပြီး ဒုတိယသတ်မှတ်ချက်အဖြစ် callback တစ်ခုကို လက်ခံသော လုပ်ဆောင်ချက်ရှိသည်ဆိုပါစို့။
<?php
function func($num, $calb)
{
}
?>
လုပ်ဆောင်ချက်အတွင်း၌ ကျွန်ုပ်တို့၏ callback ကို ပေးပို့ထားသောဂဏန်းအတွက် ခေါ်ယူခြင်းဖြစ်စေရန် ပြုလုပ်ကြပါစို့။
<?php
function func($num, $calb)
{
echo $calb($num);
}
?>
ယခု ကျွန်ုပ်တို့၏လုပ်ဆောင်ချက်ထံသို့ callback ပေးပို့ခြင်း၏ �ွေးချယ်စရာများရှိသည်ကို ကြည့်ရအောင်။
ရွေးချယ်စရာ ၁
ကျွန်ုပ်တို့၏ callback သည် သာမန် လုပ်ဆောင်ချက်ဖြစ်နိုင်သည်။
<?php
function calb($num) {
return $num ** 2;
}
?>
ဤအခြေအနေတွင် callback အဖြစ် ကျွန်ုပ်တို့၏လုပ်ဆောင်ချက်၏အမည်ကို ပေးပို့ပါမည်။
<?php
func(3, 'calb');
?>
func လုပ်ဆောင်ချက်အတွင်း၌ ကျွန်ုပ်တို့၏
callback ကို အမည်ဖြင့် ခေါ်ယူလိမ့်မည်။
ရွေးချယ်စရာ ၂
ကျွန်ုပ်တို့၏ callback သည် ကိန်းရှင်တစ်ခုတွင် မှတ်တမ်းတင်ထားသော အမည်မဲ့လုပ်ဆောင်ချက် ဖြစ်နိုင်သည်။
<?php
$calb = function($num) {
return $num ** 2;
};
?>
ဤအခြေအနေတွင် ကျွန်ုပ်တို့၏လုပ်ဆောင်ချက်ပါသော ကိန်းရှင်ကို သတ်မှတ်ချက်အဖြစ် ပေးပို့ပါသည်။
<?php
func(3, $calb);
?>
ရွေးချယ်စရာ ၃
အမည်မဲ့လုပ်ဆောင်ချက်ကို ချက်ချင်းပင် သတ်မှတ်ချက်အဖြစ် ပေးပို့နိုင်သည်။
<?php
func(3, function($num) {
return $num ** 2;
});
?>
ရွေးချယ်စရာ ၄
မြားလုပ်ဆောင်ချက်ကို အသုံးပြု၍ ကုဒ်ကို အတိုချုံးနိုင်သည်။
<?php
func(3, fn($num) => $num ** 2);
?>
လက်တွေ့လေ့ကျင့်ခန်းများ
ခင်းကျင်းတန်းတစ်ခုကို လက်ခံပြီး ခင်းကျင်းတန်း၏ အရာဝတ္ထုတစ်ခုစီအတွက် အသုံးပြုမည့် callback တစ်ခုကို လက်ခံသော လုပ်ဆောင်ချက်တစ်ခုကို ပေးထားသည်။
<?php
function func($arr, $calb)
{
$res = [];
foreach ($arr as $elem) {
$res[] = $calb($elem);
}
return $res;
}
?>
ဂဏန်းများပါသော ခင်းကျင်းတန်းနှင့် ပေးပို့ထားသောဂဏန်းကို နှစ်ထပ်ကိန်းတင်ပေးမည့် callback တစ်ခုကို သတ်မှတ်ချက်အဖြစ် ပေးပို့ခြင်းဖြင့် ဤလုပ်ဆောင်ချက်ကို ခေါ်ယူပါ။