PHP တွင် Sprintf function သည်အလွန်လက်တွေ့ကျသည့် string formating tool တစ်ခုဖြစ်သည်။ ၎င်းသည်တင်းပလိတ်များထဲသို့အဆင်ပြေစွာဖြည့်ဆည်းပေးသည့်ကြိုးများကိုကြိုးခွဲခြားရန်အများအားဖြင့်ပုံစံများကို format လုပ်ထားစေသည်။ ပုံမှန်အားဖြင့်ကျွန်ုပ်တို့သည်၎င်းကို placeholders များမှတဆင့်ကြိုးဖြင့်အစားထိုးနိုင်သည်,
ဤဆောင်းပါးတွင် PHP တွင်ပိုမိုပြောင်းလွယ်ပြင်လွယ်ပုံစံအစားထိုးလုပ်ဆောင်မှုကိုအကောင်အထည်ဖော်ရန် PHP တွင် Sprintf function ကိုမည်သို့ချထားရမည်ကိုဆွေးနွေးပါမည်။
Sprintf function ကို PHP တွင်ကြိုးကြိုးများကိုပုံစံချရန်နှင့် format လုပ်ထားသော string ကိုပြန်ပို့ရန်အသုံးပြုသည်။ ၎င်း၏အခြေခံအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -
sprintf("Hello, %s!", "world"); // ထုတ်လုပ်ခြင်း "Hello, world!"
ဤလုပ်ဆောင်ချက်၏ပထမ ဦး ဆုံး pareter သည် template string ကို string တစ်ခုဖြစ်ပြီးနောက်ဆက်တွဲ parameter များကို template တွင်အစားထိုးရန်အသုံးပြုသည်။
ဘုံ placeholders များမှာ -
% s : string ကိုကိုယ်စားပြုတယ်။
% d : ကိန်းဂဏန်းကိုကိုယ်စားပြုတယ်။
% f : floating အချက်များအရေအတွက်ကိုကိုယ်စားပြုတယ်။
ဤအိမ်မွေးတိရိစ္ဆာန်များနှင့်အတူ variable တွေကိုအလွယ်တကူကြိုးများသို့အလွယ်တကူဖြည့်စွက်နိုင်ပါတယ်။
Sprintf သည်အလွန်အသုံး 0 င်သော်လည်း၎င်း၏လုပ်ဆောင်မှုသည်အတော်လေးရိုးရှင်းပြီးအခြေအနေများအရရွေးချယ်မှုအစားထိုးခြင်းကဲ့သို့သောရှုပ်ထွေးသော template အစားထိုးလိုအပ်ချက်များကိုတိုက်ရိုက်မထောက်ပံ့နိုင်ပါ။ ပိုမိုပြောင်းလွယ်ပြင်လွယ်ပုံစံဖြင့်အစားထိုးရန်အတွက်ကျွန်ုပ်တို့သည် function ကို oncapsulate, ပုံမှန်အသုံးအနှုန်းများကိုပေါင်းစပ်ပြီးပုံမှန်အသုံးအနှုန်းများကိုပေါင်းစပ်ပြီးအစားထိုးနည်းလမ်းများစွာကိုထောက်ပံ့နိုင်သည်။
ဤတွင် Encapsulation များ၏ဥပမာတစ်ခုဖြစ်ပါသည်:
function flexible_sprintf($template, $data) {
// တင်းပလိတ်များတွင် placeholders ကိုအစားထိုးပါ
foreach ($data as $key => $value) {
// ပုံမှန်စကားရပ်တစ်ခုဖန်တီးပါ,တူသောပုံစံများ {key} နေရာချထားသူ
$pattern = "/\{" . preg_quote($key, '/') . "\}/";
// 替换对应နေရာချထားသူအတွက်值
$template = preg_replace($pattern, $value, $template);
}
return $template;
}
ကျွန်ုပ်တို့တွင် template ကိုအစားထိုးရန်အတွက် flexible_sprintf ကို အသုံးပြု. Template_sprintf ကို အသုံးပြု. Template_sprintf ကို အသုံးပြု. စာရွက်နှင့်အချို့သောအချက်အလက်များရှိသည်ဆိုပါစို့။
$template = "Hello, {name}! Welcome to {place}.";
$data = [
'name' => 'Alice',
'place' => 'gitbox.net'
];
echo flexible_sprintf($template, $data);
ဒါက output ကိုဖြစ်လိမ့်မယ်:
Hello, Alice! Welcome to gitbox.net.
ကျွန်ုပ်တို့၏ encapsulated sprintf ကို ပိုမိုကောင်းမွန်အောင်ပြုလုပ်နိုင်သည်။ ဥပမာအားဖြင့်၎င်းသည် 0 င်လာသောအချက်အလက်များတည်ရှိခြင်းရှိ, မရှိအပေါ် အခြေခံ. နေရာချထားသူတစ် ဦး အားအစားထိုးရန်ဆုံးဖြတ်နိုင်သည်။
function flexible_sprintf_with_condition($template, $data, $conditions = []) {
// ပထမ ဦး ဆုံးအစားထိုးအစားထိုးလုပ်ဆောင်ပါ
foreach ($data as $key => $value) {
$pattern = "/\{" . preg_quote($key, '/') . "\}/";
$template = preg_replace($pattern, $value, $template);
}
// အခြေအနေများအရသိရသည်အစားထိုးပါ
foreach ($conditions as $key => $condition) {
if (isset($data[$key]) && $data[$key] == $condition) {
$template = preg_replace("/\{" . preg_quote($key, '/') . "\}/", strtoupper($data[$key]), $template);
}
}
return $template;
}
$template = "Hello, {name}! Welcome to {place}.";
$data = [
'name' => 'Alice',
'place' => 'gitbox.net'
];
$conditions = [
'place' => 'gitbox.net' // လှျင် place အတွက် gitbox.net,替换အတွက်大写
];
echo flexible_sprintf_with_condition($template, $data, $conditions);
output ကိုဖြစ်လိမ့်မည်:
Hello, Alice! Welcome to GITBOX.NET.