PHP တွင် Callback Functions

Callback သည် အခြားလုပ်ဆောင်ချက်တစ်ခုထံသို့ သတ်မှတ်ချက်တစ်ခုအဖြစ် လက်ခံသော လုပ်ဆောင်ချက်ဖြစ်သည်။

ဥပမာတစ်ခုကို ကြည့်ရအောင်။ ကျွန်ုပ်တို့တွင် ပထမသတ်မှတ်ချက်အဖြစ် ဂဏန်းတစ်ခုကို လက်ခံပြီး ဒုတိယသတ်မှတ်ချက်အဖြစ် callback တစ်ခုကို လက်ခံသော လုပ်ဆောင်ချက်ရှိသည်ဆိုပါစို့။

php<?php
  function func($num, $calb)
  {
    
  }
?>

လုပ်ဆောင်ချက်အတွင်း၌ ကျွန်ုပ်တို့၏ callback ကို ပေးပို့ထားသောဂဏန်းအတွက် ခေါ်ယူခြင်းဖြစ်စေရန် ပြုလုပ်ကြပါစို့။

php<?php
  function func($num, $calb)
  {
    echo $calb($num);
  }
?>

ယခု ကျွန်ုပ်တို့၏လုပ်ဆောင်ချက်ထံသို့ callback ပေးပို့ခြင်း၏ �ွေးချယ်စရာများရှိသည်ကို ကြည့်ရအောင်။

ရွေးချယ်စရာ ၁

ကျွန်ုပ်တို့၏ callback သည် သာမန် လုပ်ဆောင်ချက်ဖြစ်နိုင်သည်။

php<?php
  function calb($num) {
    return $num ** 2;
  }
?>

ဤအခြေအနေတွင် callback အဖြစ် ကျွန်ုပ်တို့၏လုပ်ဆောင်ချက်၏အမည်ကို ပေးပို့ပါမည်။

php<?php
  func(3, 'calb');
?>

func လုပ်ဆောင်ချက်အတွင်း၌ ကျွန်ုပ်တို့၏ callback ကို အမည်ဖြင့် ခေါ်ယူလိမ့်မည်။

ရွေးချယ်စရာ ၂

ကျွန်ုပ်တို့၏ callback သည် ကိန်းရှင်တစ်ခုတွင် မှတ်တမ်းတင်ထားသော အမည်မဲ့လုပ်ဆောင်ချက် ဖြစ်နိုင်သည်။

php<?php
  $calb = function($num) {
    return $num ** 2;
  };
?>

ဤအခြေအနေတွင် ကျွန်ုပ်တို့၏လုပ်ဆောင်ချက်ပါသော ကိန်းရှင်ကို သတ်မှတ်ချက်အဖြစ် ပေးပို့ပါသည်။

php<?php
  func(3, $calb);
?>

ရွေးချယ်စရာ ၃

အမည်မဲ့လုပ်ဆောင်ချက်ကို ချက်ချင်းပင် သတ်မှတ်ချက်အဖြစ် ပေးပို့နိုင်သည်။

php<?php
  func(3, function($num) {
    return $num ** 2;
  });
?>

ရွေးချယ်စရာ ၄

မြားလုပ်ဆောင်ချက်ကို အသုံးပြု၍ ကုဒ်ကို အတိုချုံးနိုင်သည်။

php<?php
  func(3, fn($num) => $num ** 2);
?>

လက်တွေ့လေ့ကျင့်ခန်းများ

Задание 1

ခင်းကျင်းတန်းတစ်ခုကို လက်ခံပြီး ခင်းကျင်းတန်း၏ အရာဝတ္ထုတစ်ခုစီအတွက် အသုံးပြုမည့် callback တစ်ခုကို လက်ခံသော လုပ်ဆောင်ချက်တစ်ခုကို ပေးထားသည်။

php<?php
  function func($arr, $calb)
  {
    $res = [];
    
    foreach ($arr as $elem) {
      $res[] = $calb($elem);
    }
    
    return $res;
  }
?>

ဂဏန်းများပါသော ခင်းကျင်းတန်းနှင့် ပေးပို့ထားသောဂဏန်းကို နှစ်ထပ်ကိန်းတင်ပေးမည့် callback တစ်ခုကို သတ်မှတ်ချက်အဖြစ် ပေးပို့ခြင်းဖြင့် ဤလုပ်ဆောင်ချက်ကို ခေါ်ယူပါ။