PHP တွင် PREG_RESTER_CALLESTER_CALLASK_ARARARE function သည်ပုံမှန်အသုံးအနှုန်းမျိုးစုံနှင့်ကိုက်ညီသော string တစ်ခု၏အစိတ်အပိုင်းများကိုအစားထိုးရန်အလွန်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ ရိုးရာ Preg_replace နှင့်နှိုင်းယှဉ်လျှင်၎င်းသည် Modes မျိုးစုံနှင့်သက်ဆိုင်ရာ callback functack ကိုဖြတ်သန်းခြင်းကိုတစ်ချိန်တည်းတွင်ဖွဲ့စည်းသည်။
အမှန်တကယ်အသုံးပြုမှုတွင် developer များကအမည်ဝှက် function များကို callback လုပ်ဆောင်ချက်များကိုအသုံးပြုကြသည်။ ဤနည်းလမ်းသည်အဆင်ပြေစွာရရှိမည်ဖြစ်သော်လည်းအလားအလာရှိသောအားနည်းချက်များရှိသည်။ ဤဆောင်းပါးသည်အသေးစိတ်အချက်အလက်များကို preg_replace_callback_array ရှိအမည်မသိလုပ်ဆောင်မှုများကို အသုံးပြု. အားသာချက်များနှင့်အားနည်းချက်များကိုအသေးစိတ်လေ့လာသုံးသပ်လိမ့်မည်။
Preg_replace_callback_array သည် parameters နှစ်ခုကိုလက်ခံသည်။
ပုံစံများ - တွဲဖက် array တစ်ခု, သော့သည်ပုံမှန်စကားရပ်ဖြစ်သည်။ တန်ဖိုးသည် callback function ဖြစ်သည်။
အကြောင်းအရာ - လုပ်ငန်းများ၌ string ကို။
နမူနာကုဒ်:
<?php
$text = "Visit http://example.com and https://example.net";
$result = preg_replace_callback_array([
'/http:\/\/[a-z\.]+/' => function($matches) {
return str_replace('example.com', 'm66.net', $matches[0]);
},
'/https:\/\/[a-z\.]+/' => function($matches) {
return str_replace('example.net', 'm66.net', $matches[0]);
}
], $text);
echo $result; // ထုတ်လုပ်ခြင်း:Visit http://m66.net and https://m66.net
အမည်မသိလုပ်ဆောင်ချက်များကို callback ခင်းကျင်းမှုတွင်တိုက်ရိုက်ရေးသားပြီးပုံမှန်အသုံးအနှုန်းများကိုဟန်ချက်ညီညီစွာဖော်ပြရန်နီးကပ်စွာနားလည်ရန်နှင့်ထိန်းသိမ်းရန်လွယ်ကူစေသည်။
အသုံးပြုမှု သော့ချက်စာလုံးကိုအသုံးပြုခြင်းအားဖြင့်အမည်မသိလုပ်ဆောင်ချက်များသည်ကမ္ဘာလုံးဆိုင်ရာ variable များသို့မဟုတ် class attribute များကိုမသတ်မှတ်ဘဲပြင်ပ variable များကိုအလွယ်တကူရယူနိုင်သည်။
<?php
$domain = 'm66.net';
$result = preg_replace_callback_array([
'/http:\/\/[a-z\.]+/' => function($matches) use ($domain) {
return str_replace('example.com', $domain, $matches[0]);
}
], $text);
အမည်မသိလုပ်ဆောင်ချက်များတွင်နာမည်မဖော်ပြထားသည့်အမည်များမရှိပါ။
အစားထိုးယုတ္တိဗေဒသည်ရိုးရှင်းသည့်အခါအမည်မသိလုပ်ဆောင်ချက်များသည် callback လုပ်ဆောင်ချက်များကိုသီးခြားစီကြေညာရန်မလိုဘဲစစ်ဆေးမှုကုဒ်ကိုလျင်မြန်စွာရေးနိုင်သည်။
အမည်မသိလုပ်ဆောင်ချက်များကဲ့သို့သောနေရာများစွာတွင်အမည်မသိလုပ်ဆောင်ချက်များကိုပြန်လည်အသုံးမပြုပါ။ အစားထိုးယုတ္တိဗေဒအလားတူဖြစ်သော်လည်းအသေးစိတ်အချက်အလက်များကွဲပြားလျှင်ကုဒ်ကိုပုံတူကူးနိုင်သည်။
အမည်မသိလုပ်ဆောင်ချက်များတွင် function name များမရှိပါ။ Debug Stack Inform တွင် Debug Stack Information တွင်တိကျသောလုပ်ဆောင်ချက်များကိုရှာဖွေရန်မလွယ်ကူပါ။
callback function ကိုသည်ရှည်လျားသောသို့မဟုတ်ရှုပ်ထွေးသောအခါ array သို့တိုက်ရိုက်အမည်ဝှက်လုပ်ဆောင်ချက်များကိုတိုက်ရိုက်ရေးသားခြင်းက code ကို beluated ပေါ်လာလိမ့်မည်။
ခြားနားချက်သည်သေးငယ်သော်လည်းအမည်မဖော်လိုသောလုပ်ဆောင်ချက်များကိုခေါ်ဆိုခြင်း၏ခေါ်ဆိုမှုကိုများသောအားဖြင့်အနည်းငယ်နိမ့်သည်။
အမည်မသိ function များကို preg_replace_callback_array တွင် အသုံးပြု. code ကိုပိုမိုတိကျသောချည်နှောင်ခြင်းနှင့်ကျစ်လစ်သိပ်သည်းစေသည်။ ၎င်းသည်အထူးသဖြင့်ပြန်လည်အသုံးပြုရန်မလိုအပ်သည့်ရိုးရှင်းသော callback လုပ်ဆောင်ချက်များအတွက်သင့်တော်သည်။ သို့သော်အစားထိုးယုတ္တိဗေဒသည်ရှုပ်ထွေးသောအခါသို့မဟုတ်ပြန်လည်သုံးသပ်ရန်လိုအပ်သည့်အခါ,
အကြံပြုချက် -
ရိုးရှင်းသောအစားထိုးအခြေအနေများအမည်မသိလုပ်ဆောင်ချက်များကို ဦး စားပေး ဦး စားပေး;
ရှုပ်ထွေးသောအထွေထွေခေါ်ဆိုမှုယုတ္တိဗေဒအမည်ရှိသည့်လုပ်ဆောင်ချက်များကိုသတ်မှတ်ခြင်းသို့မဟုတ်လူတန်းစားနည်းစနစ်များကိုသတ်မှတ်ရန်အကြံပြုသည်။
၎င်းသည်အမည်မဖော်လိုသောလုပ်ဆောင်ချက်များကိုပြောင်းလွယ်ပြင်လွယ်မှုများကိုအပြည့်အဝအသုံးချရုံသာမကဖြစ်နိုင်ချေရှိသောအားနည်းချက်များကိုလည်းရှောင်ရှားနိုင်ပြီးစွမ်းဆောင်ရည်မြင့်မားစွာဖြင့်ပြုလုပ်နိုင်သည်။
<?php
$text = "Check out http://example.com and https://example.net for more info.";
$domain = 'm66.net';
$result = preg_replace_callback_array([
'/http:\/\/[a-z\.]+/' => function($matches) use ($domain) {
return str_replace('example.com', $domain, $matches[0]);
},
'/https:\/\/[a-z\.]+/' => function($matches) use ($domain) {
return str_replace('example.net', $domain, $matches[0]);
}
], $text);
echo $result; // ထုတ်လုပ်ခြင်း:Check out http://m66.net and https://m66.net for more info.