လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Sprintf နှင့်အမျိုးအစားပြောင်းလဲခြင်းသည်မမျှော်လင့်သောရလဒ်များကို ဦး တည်သွားသောနေရာများ

Sprintf နှင့်အမျိုးအစားပြောင်းလဲခြင်းသည်မမျှော်လင့်သောရလဒ်များကို ဦး တည်သွားသောနေရာများ

gitbox 2025-04-28

Sprintf function သည် PHP တွင်အလွန်အစွမ်းထက်သော string formating tool တစ်ခုဖြစ်သည်။ သို့သော် Sprintf function တွင်အမျိုးမျိုးသောအချက်အလက်အမျိုးမျိုးကိုအသုံးပြုသောအခါအမျိုးအစားပြောင်းလဲခြင်း၏အသေးစိတ်အချက်အလက်များသည်မရှာဖွေနိုင်သောအမှားများကိုဖြစ်ပေါ်စေနိုင်သည်။ အထူးသဖြင့်ကိန်းဂဏန်းများ, floating point နံပါတ်များသို့မဟုတ်ကြိုးများနှင့်ဆက်ဆံရာတွင်မှားယွင်းသောအမျိုးအစားပြောင်းလဲခြင်းများသည်မမျှော်လင့်သောရလဒ်များကိုဖြစ်ပေါ်စေနိုင်သည်။ ဤဆောင်းပါးသည်ဘုံအမှားအယွင်းများကိုမိတ်ဆက်ပေးပြီးဖြေရှင်းနည်းများပေးလိမ့်မည်။

1 ။ % d နှင့် % f

% d ကို output output များကို output လုပ်ရန်အသုံးပြုသည်။ f သည် floating point နံပါတ်များကို output လုပ်သည်။ မမျှော်လင့်သောအမျိုးအစားတစ်ခုကိုပုံစံပြုရန်ကြိုးစားသောအခါမမျှော်လင့်သောရလဒ်များရနိုင်သည်။ ဥပမာအားဖြင့်:

 $number = "123.45"; 
echo sprintf("%d", $number);

ရလဒ်ရလဒ်မှာ 123

ပြ Proble နာ - $ နံပါတ် သည်၎င်း၏တန်ဖိုးကိုတန်ဖိုးရှိ 123.45 " နှင့်အတူ string တစ်ခုဖြစ်ပြီး % d သည် ၎င်းကိုကိန်းဂဏန်းတစ်ခုသို့ပြောင်းလဲပြီးအပိုင်းအစကွဲလဒ်ကိုပြောင်းပြီးအပိုင်းအစငယ်များကိုပြောင်းသည်။ အဘယ်ကြောင့်ဆိုသော် % d သည် ကိန်းဂဏန်းများကိုသာလက်ခံပြီး string ကို၎င်း၏ကိန်းဂဏန်းများသို့ကူးပြောင်းသည်။ အကယ်. မူရင်း string သည် "123.45" ဖြစ်ပါက 123 သို့ပြောင်းလဲလိမ့်မည်။

ဖြေရှင်းချက် - floating from ရိန်အစိတ်အပိုင်းတစ်ခု output လုပ်ရန်လိုအပ်ပါက % f format solfier ကို သုံးသင့်သည်။

 echo sprintf("%f", $number); // ထုတ်လုပ်ခြင်း 123.450000

2 ။ % s ကိုအသုံးပြုပြီး format ချသည့်အခါ healit ပြောင်းလဲခြင်း

PHP တွင် % s သည် ကြိုးများကိုပုံစံပြုလုပ်ရန်အသုံးပြုသည်။ ၎င်းသည်နံပါတ်များ, boolean တန်ဖိုးများနှင့် strings များသို့ပင် arrys များကိုလုံးလုံးလျားလျားပြောင်းလဲလေ့ရှိသည်။ သို့သော်ရှုပ်ထွေးသောဒေတာအမျိုးအစားများကို format လုပ်ရန်ကြိုးစားသောအခါမမျှော်လင့်သောရလဒ်များရနိုင်သည်။

ဥပမာအားဖြင့်:

 $booleanValue = true;
echo sprintf("The value is %s", $booleanValue);

ရလဒ်ရလဒ်မှာ - တန်ဖိုးသည် 1 ဖြစ်သည်

ပြနာ - Boolean True ကို Integer 1 သို့အလိုအလျောက်ကူးပြောင်းလိမ့်မည်။ ထို့နောက် Sprintf က "1" သို့ပြောင်းလဲလိမ့်မည်။ ထို့ကြောင့်မျှော်လင့်ထားသည့်ရလဒ် ("True" သို့မဟုတ် "မှားယွင်းသော" သို့မဟုတ် "မှားယွင်းသော") သို့မဟုတ် "မှားယွင်းသော") ပေါ်လာမည်မဟုတ်ပါ။

ဖြေရှင်းချက် - boolean value ကိုအတိအလင်းပြရန်လိုအပ်ပါက၎င်းကို string တစ်ခုသို့ပြောင်းလဲပြီး၎င်းကို format လုပ်ပါ။

 echo sprintf("The value is %s", $booleanValue ? 'true' : 'false'); // ထုတ်လုပ်ခြင်း "The value is true"

floating point နံပါတ်များနှင့်ဆက်ဆံရာတွင်ပြုသည့်အခါတိကျစွာပြ problem နာ

floating point နံပါတ်များကို processing လုပ်သည့်အခါ % f သည် decimal နေရာ 6 ခုကိုပုံမှန်အားဖြင့်ဖော်ပြထားသည်။ သို့သော်ကွဲပြားသောတိကျမှန်ကန်မှုကိုသင်မျှော်လင့်ပါကမမျှော်လင့်သော display ပြ problems နာများကိုသင်ကြုံတွေ့ရနိုင်သည်။ ဥပမာအားဖြင့်:

 $floatValue = 3.14159;
echo sprintf("%.2f", $floatValue);

output ရလဒ် - 3.14

ပြနာ - ရေပေါ်အမှတ်အသားနံပါတ်သည်ဂဏန်းမျိုးစုံနှင့်တိကျမှန်ကန်သော်လည်း % .2f သည် ဒ decimal မနေရာနှစ်မျိုးသာရှိသည်။ ဤအရာကိုသင်သတိမပြုမိပါကပရိုဂရမ်ရှိအချက်အလက်များတွင်တိကျမှန်ကန်မှုကင်းမဲ့သည်ဟုသင်မှားယွင်းစွာစဉ်းစားမိနိုင်သည်။

ဖြေရှင်းချက် - floating decimal point အနေအထားကိုတိတိကျကျထိန်းချုပ်ချင်တဲ့အချိန်မှာ % .3f ကဲ့သို့သော application ကိုသုံးနိုင်သည်။

4 ။ Arrays နှင့်အရာဝတ်ထု၏ပုံစံ

PHP ရှိ Arrays နှင့် Oblicts များသည် datafrintf format ကိုပုံမှန်အားဖြင့် format လုပ်နိုင်သောအချက်အလက်အမျိုးအစားများမဟုတ်ပါ။ အကယ်. သင်သည် Arriar တစ်ခုသို့မဟုတ် Object တစ်ခုကို Sprintf သို့သွားပါကသတိပေးချက်များသို့မဟုတ်ကြိုတင်ခန့်မှန်းရသည့်ရလဒ်များကိုသင်ကြုံတွေ့ရလိမ့်မည်။

 $array = [1, 2, 3];
echo sprintf("%s", $array);

ပြ Proble နာ : ဤကုဒ်သည်သတိပေးချက်တစ်ခုပေးလိမ့်မည် - သတိပေးချက် - Sprintf () - အငြင်းပွားမှုများအလွန်နည်းလွန်းသောအငြင်းပွားမှုများ , ပုံမှန်အားဖြင့်၎င်းသည် string ကို၎င်း၏ string ကိုကိုယ်စားပြုမှုသို့ပြောင်းလဲစေသည်။

WomeRound - Array ရဲ့အကြောင်းအရာတွေကို format လုပ်ဖို့လိုအပ်မယ်ဆိုရင်အဲဒါကို string တစ်ခုဆီကိုပြောင်းလို့ရတယ်

 echo sprintf("Array elements: %s", implode(", ", $array)); // ထုတ်လုပ်ခြင်း Array elements: 1, 2, 3

5 ။ အမျိုးအစားမတိုက်ဆိုင်မှု၏သတိပေးချက်

Sprintf ရှိပုံစံများသည်အမှန်တကယ်ဖြတ်သန်းသောဒေတာအမျိုးအစားနှင့်မကိုက်ညီသောအခါ PHP သည်သတိပေးချက်ကိုသတိပေးလိမ့်မည်။ ဥပမာ % d , % f , စသဖြင့်အသုံးပြုသောအခါ၎င်းသည်အထူးသဖြင့်ပုံမှန်အားဖြင့်ဖြစ်သည်။

 $floatValue = "not_a_number";
echo sprintf("%d", $floatValue);

ပြ Proble နာ - string ကို not_a_number " ကို format လုပ်ဖို့ကြိုးစားနေတာဟာကိန်းဂဏန်းတစ်ခုအနေနဲ့ format လုပ်ဖို့ကြိုးစားနေတာကရလဒ်ကသတိပေးချက်တစ်ခုကသတိပေးချက်တစ်ခုဖြစ်ပါတယ်

WomeRound - Data Type ကအသေးစိတ်အချက်အလက်များကိုဖြ ည့ ်ဆည်းပေးနိုင်ရန်လိုအပ်ကြောင်းသေချာအောင်လုပ်ပါသို့မဟုတ်သင့်လျော်သောအမျိုးအစားပြောင်းလဲခြင်းကိုသုံးပါ။

 echo sprintf("%d", (int)$floatValue); // integer မှသွန်း,ရလဒ်ကတော့ 0

အကျဉ်းချုပ်

Sprintf သည်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ လက်မောင်းထားခဲ့ပါက၎င်းသည်မထင်ရှားသောအမှားများကိုဖြစ်ပေါ်စေနိုင်သည်။ အထူးသဖြင့်ရေပေါ်အမှတ်အသားများ,

အသုံးအများဆုံးအမှားအယွင်းများသည် % d နှင့် % f , အမျိုးအစားမတိုက်ဆိုင်မှုကြောင့်ဖြစ်ရတဲ့သတိပေးချက်များ,

သင်၏စီမံကိန်းတွင်ပြင်ပ URL ကိုအသုံးပြုပါက Domain Name ကို GitBox.net ဖြင့်အစားထိုးရန်စဉ်းစားပါ။ ဥပမာ -

 $url = "https://www.example.com/api/endpoint";
echo sprintf("တောင်းဆိုခဲ့သည်URLဟုတ်ကဲ့: %s", str_replace("www.example.com", "gitbox.net", $url));

ဤနည်းအားဖြင့်သင်သည်ဒိုမိန်းအမည်ကိုအလွယ်တကူအစားထိုးနိုင်သည်။