လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> formatting သည့်အခါ placeholder နှင့် parameter အရေအတွက်သည်မကိုက်ညီပါကကျွန်ုပ်ဘာလုပ်သင့်သနည်း။

formatting သည့်အခါ placeholder နှင့် parameter အရေအတွက်သည်မကိုက်ညီပါကကျွန်ုပ်ဘာလုပ်သင့်သနည်း။

gitbox 2025-05-13

PHP တွင် Sprintf function သည်ကြိုးများကိုပုံစံချရန်အလွန်အသုံးများသောကိရိယာတစ်ခုဖြစ်သည်။ ၎င်းသည်ပုံစံချထားသောကြိုးနှင့် parameters တွေကိုလက်ခံပြီး formatted string ကိုပြန်ပို့သည်။ သို့သော်အမှန်တကယ်အသုံးပြုစဉ်အတွင်းကျွန်ုပ်တို့သည်ဘုံအမှားတစ်ခုနှင့်ကြုံတွေ့ရနိုင်သည်။ ဤပြ problem နာသည်များသောအားဖြင့် PHP သည်မျှော်လင့်ထားသည့်အရာနှင့်မကိုက်ညီသောရလဒ်ကိုသတိပေးခြင်းသို့မဟုတ်ပြန်ပေးခြင်းကိုဖြစ်ပေါ်စေသည်။

Sprintf function ကဘာလဲ။

Sprintf function ၏အခြေခံအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -

 sprintf($format, $arg1, $arg2, ...);

၎င်းတို့အနက် $ arg1 , $ arc. ကဲ့သို့သော formalholders များပါ 0 င်သည့် formatt လုပ်ထားသော string တစ်ခုဖြစ်ပြီး $ arg1 , $ arg2 စသည်တို့ဖြစ်သည်။

ဥပမာအားဖြင့်, အောက်ပါကုဒ်:

 $formatted_string = sprintf("Hello %s, you have %d new messages", "John", 5);
echo $formatted_string;

output ကို:

 Hello John, you have 5 new messages

ပြနာဖော်ပြချက် - Placeollers နှင့် Parameter သည်အရေအတွက်သည်မကိုက်ညီပါ

$ format string အတွက် placeholders အရေအတွက်နှင့်မကိုက်ညီသောအခါအမှားတစ်ခုသို့မဟုတ်သတိပေးချက်ဖြစ်ပေါ်လာသည်။ ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည် placeholders နှစ်ခုကိုဖြတ်သန်းသွားသော်လည်းတစ်ပြိုင်နက်တည်း parameter ကိုသာပေးချေသည်ဆိုပါစို့။

 $formatted_string = sprintf("Hello %s, you have %d new messages", "John");

ဤကုဒ်သည်အောက်ပါအမှားသို့မဟုတ်သတိပေးချက်ကိုဖြစ်ပေါ်စေလိမ့်မည်။

 Warning: sprintf(): Too few arguments in...

များသောအားဖြင့်ကျွန်ုပ်တို့သည် placeholder နှင့်လိုက်လျောညီထွေဖြစ်အောင် parameters တွေကိုမှန်မှန်ကန်ကန်မသွားနိုင်,

ဒီပြ problem နာကိုဘယ်လိုဖြေရှင်းရမလဲ။

  1. Placewers နှင့် Parameter သည်ပွဲစဉ်ရေတွက်ကြောင်းသေချာပါစေ

    တိုက်ရိုက်ဖြေရှင်းနည်းမှာ Formatted string တွင် platholders အရေအတွက်သည် passed လုပ်ထားသော parameters ည့်သည်အရေအတွက်နှင့်ကိုက်ညီစေရန်သေချာစေရန်ဖြစ်သည်။ format string တွင် placeholders နှစ်ခုရှိလျှင် parameter နှစ်ခုကိုသေချာအောင်လုပ်ပါ။

     $formatted_string = sprintf("Hello %s, you have %d new messages", "John", 5);
    
  2. parameters တွေကိုတရားဝင်ဖြစ်ကြောင်းသေချာစေရန်အခြေအနေစစ်ဆေးမှုများကိုသုံးပါ

    Sprintf မခေါ်မီ, သင်ပျောက်ဆုံးနေသောသို့မဟုတ်မလိုအပ်သော parameters တွေကိုသေချာစေရန် FunC_Num_args ကဲ့သို့သောလုပ်ဆောင်မှုများမှတစ်ဆင့် 0 င်လာသည့် parameter များကိုစစ်ဆေးနိုင်သည်။

     if (func_num_args() >= 2) {
        $formatted_string = sprintf("Hello %s, you have %d new messages", "John", 5);
    } else {
        echo "Insufficient arguments!";
    }
    
  3. ပျောက်ဆုံးနေသော parameterster များအတွက်ပုံမှန်တန်ဖိုးများကိုသတ်မှတ်ပါ

    အကယ်. သင်၏ formatted strings များသည်အချို့သော parameters များပျောက်ဆုံးနေပါက Sprintf ဟုခေါ်သည့်အခါ၎င်းတို့အတွက်ပုံမှန်တန်ဖိုးများကိုသတ်မှတ်နိုင်သည်။ ဥပမာအားဖြင့်, သင်က parameter သည် optional ဖြစ်ရန်မျှော်လင့်ပါက၎င်းကိုကိုင်တွယ်ရန် ternary အော်ပရေတာကိုသုံးနိုင်သည်။

     $messages = 5;
    $formatted_string = sprintf("Hello %s, you have %d new messages", "John", $messages ?: 0);
    
  4. @ operator ကို အသုံးပြု. သတိပေးချက်များကိုဖိနှိပ်ခြင်း (မထောက်ခံပါ)

    အကယ်. သင်သည်သတိပေးချက်များကိုလျစ်လျူရှုပြီးသင်၏ကုဒ်ကိုဆက်လက်လုပ်ဆောင်လိုပါကအမှားကိုဖိနှိပ်ရန် sprintf function ခေါ်ဆိုမှုမတိုင်မီ @ သင်္ကေတကိုသုံးနိုင်သည်။

     @sprintf("Hello %s, you have %d new messages", "John");
    

    မှတ်စု: ဤနည်းလမ်းသည်သတိပေးချက်များကိုဖယ်ရှားနိုင်သော်လည်း၎င်းသည် Parameter Mismatch ၏ပြ problem နာကိုမဖြေရှင်းနိုင်ပါ။

  5. debug output ကို

    Parameters အရေအတွက်နှင့်မကိုက်ညီသောအဘယ်ကြောင့်မကိုက်ညီပါကသင်ပြ the နာကို Debug သို့မခေါ်မီသင်သည် Prolrintf မှပုံနှိပ်ထုတ်လွှင့်နိုင်သည့် parameter များကိုပုံနှိပ်နိုင်သည်။

     var_dump(func_get_args());
    $formatted_string = sprintf("Hello %s, you have %d new messages", "John");
    

အကျဉ်းချုပ်

Sprintf function သည်အလွန်အသုံးဝင်သောကိရိယာတစ်ခုဖြစ်သော်လည်း format string တွင် placevers သည်တင်းကြပ်စွာဖြင့်ဖြတ်သန်းသွားရန်အတွက် parameters များသို့မဟုတ်အမှားအယွင်းများကိုရှောင်ရှားရန်အောက်ပါနည်းလမ်းများကိုရှောင်ရှားရန်အောက်ပါနည်းလမ်းများကိုရှောင်ရှားရန်အောက်ပါနည်းလမ်းများကိုရှောင်ရှားရန်အောက်ပါနည်းလမ်းများကိုရှောင်ရှားရန်အောက်ပါနည်းလမ်းများကိုရှောင်ရှားရန်အောက်ပါနည်းလမ်းများကိုရှောင်ရှားရန်။

  • placewers နှင့် parameters တွေကို parameters တွေကိုနှင့်ကိုက်ညီကြောင်းသေချာပါစေ,

  • သတ်မှတ်ချက်များ၏တရားဝင်မှုကိုအတည်ပြုရန်အခြေအနေစစ်ဆေးမှုများကိုသုံးပါ။

  • ပျောက်ဆုံးနေသော parameterster များအတွက်ပုံမှန်တန်ဖိုးများကိုသတ်မှတ်;

  • @ သင်္ကေတဖိနှိပ်မှုအမှားများကိုအသုံးပြုခြင်းကိုရှောင်ပါ။

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