PHP တွင် အဆောက်အဦး လုပ်ဆောင်ချက်များအတွင်း Callbacks များ
PHP တွင် callbacks များကို parameter အဖြစ် လက်ခံသော အဆောက်အဦး လုပ်ဆောင်ချက် အများအပြားရှိသည်။
၎င်းတို့နှင့် အလုပ်လုပ်ခြင်း၏ ယေဘူယျ နိယာမကို ကျွန်ုပ်တို့သည်
array_map လုပ်ဆောင်ချက်၏ ဥပမာဖြင့် လေ့လာပါမည်။
ဤလုပ်ဆောင်ချက်သည် ပထမ parameter အဖြစ် callback ကို လက်ခံပြီး
ဒုတိယအနေဖြင့် array ကို လက်ခံသည်။ ဤလုပ်ဆောင်ချက်သည် array ၏ အရာဝတ္ထုတစ်ခုစီသို့
callback ကို အသုံးပြုပြီး ပြောင်းလဲထားသော array ကို ပြန်ပေးသည်။
ကျွန်ုပ်တို့ ယခင်က ရရှိထားသော အသိပညာများကို ထည့်သွင်းစဉ်းစား၍ ဤလုပ်ဆောင်ချက်ကို အသုံးပြုသည့် နည်းလမ်းများကို ကြည့်ကြပါစို့။
နည်းလမ်း ၁
Array ၏ အရာဝတ္ထုတစ်ခုစီမှ နှစ်ထပ်ကိန်း ရင်းကို အဆောက်အဦး လုပ်ဆောင်ချက်
sqrt ကို အသုံးပြု၍ ထုတ်ယူကြပါစို့။
ဤသို့ပြုလုပ်ရန် callback အဖြစ် parameter တွင်
ဤလုပ်ဆောင်ချက်၏ အမည်ပါသော string ကို ပေးပို့ပါမည်။
<?php
$arr = [1, 2, 3, 4, 5];
$res = array_map('sqrt', $arr);
var_dump($res);
?>
နည်းလမ်း ၂
ကျွန်ုပ်တို့ ဖန်တီးထားသော ပုံမှန် လုပ်ဆောင်ချက်ကို အသုံးပြု၍ array ၏ အရာဝတ္ထုတစ်ခုစီကို နှစ်ထပ်ကိန်း တင်ကြပါစို့။ ဤသို့ပြုလုပ်ရန် callback အဖြစ် parameter တွင် ဤလုပ်ဆောင်ချက်၏ အမည်ပါသော string ကို ပေးပို့ပါမည်။
<?php
$arr = [1, 2, 3, 4, 5];
function func($num) {
return $num ** 2;
}
$res = array_map('func', $arr);
var_dump($res);
?>
နည်းလမ်း ၃
ကျွန်ုပ်တို့၏ လုပ်ဆောင်ချက်ကို variable ထဲတွင် သိမ်းထားသော anonymous function အဖြစ် ပြောင်းလဲပါမည်။
<?php
$arr = [1, 2, 3, 4, 5];
$func = function ($num) {
return $num ** 2;
};
$res = array_map($func, $arr);
var_dump($res);
?>
နည်းလမ်း ၄
Anonymous function ကို parameter အဖြစ် ပေးပို့ပါမည်။
<?php
$arr = [1, 2, 3, 4, 5];
$res = array_map(function ($num) {
return $num ** 2;
}, $arr);
var_dump($res);
?>
နည်းလမ်း ၅
Arrow function ကို အသုံးပြုပါမည်။
<?php
$arr = [1, 2, 3, 4, 5];
$res = array_map(fn ($num) => $num ** 2, $arr);
var_dump($res);
?>
နည်းလမ်း ၆
ယခုအခါ ဂဏန်းတစ်ခုကို တင်ရမည့် ထပ်ကိန်းသည် callback ၏ အပြင်ဘက် variable မှ သတ်မှတ်ပေးထားသည်ဆိုပါစို့။
use မှတစ်ဆင့် ရယူခြင်းဖြင့် ဤ variable ကို အသုံးပြုကြပါစို့။
<?php
$arr = [1, 2, 3, 4, 5];
$pow = 3;
$res = array_map(function ($num) use ($pow) {
return $num ** $pow;
}, $arr);
var_dump($res);
?>
နည်းလမ်း ၇
ယခင်က code ကို arrow function မှတစ်ဆင့် ပြန်ရေးကြပါစို့။
ယခုအခါ $pow variable သည် အလိုအလျောက် ရရှိနိုင်မည် ဖြစ်သည်။
<?php
$arr = [1, 2, 3, 4, 5];
$pow = 3;
$res = array_map(fn ($num) => $num ** $pow, $arr);
var_dump($res);
?>
လက်တွေ့ပုစ္ဆာများ
String များ ပါဝင်သော array တစ်ခု ရှိသည်။ Array ၏ အရာဝတ္ထုတစ်ခုစီ၏ စာသားကို အကြီးစာလုံး သို့ ပြောင်းလဲပါ။
String များ ပါဝင်သော array တစ်ခု ရှိသည်။ Array ၏ အရာဝတ္ထုတစ်ခုစီ၏ စာသားကို ပြောင်းပြန်လှန်ပါ၊ ထိုသို့ဆိုလျှင် အက္ခရာများသည် ပြောင်းပြန် အစီအစဥ်ဖြင့် သွားလိမ့်မည်။