လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> SetTTYPE () type ကူးပြောင်းခြင်းအတွက်မမျှော်လင့်သောအပြုအမူနှင့်အမှားများကိုမည်သို့ရှောင်ရှားရမည်နည်း။ အကောင်းဆုံးသောအလေ့အကျင့်များကဘာတွေလဲ။

SetTTYPE () type ကူးပြောင်းခြင်းအတွက်မမျှော်လင့်သောအပြုအမူနှင့်အမှားများကိုမည်သို့ရှောင်ရှားရမည်နည်း။ အကောင်းဆုံးသောအလေ့အကျင့်များကဘာတွေလဲ။

gitbox 2025-06-24

1 ။ setterype ၏အခြေခံအသုံးပြုမှုကိုနားလည်ပါ ()

အဆိုပါ settype () function ကိုသတ်မှတ်ထားသောအမျိုးအစားမှ variable အမျိုးအစားကိုပြောင်းလဲရန်အသုံးပြုသည်။ ၎င်း၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 settype($var, $type);
  • $ var ကို ပြောင်းလဲခံရဖို့အမျိုးအစား variable ကိုဖြစ်ပါတယ်။

  • $ type သည်ပစ်မှတ်အမျိုးအစားဖြစ်ပြီးဘုံအမျိုးအစားများတွင် "int" , "boat" , "Boat", "Boat" , "Boat" ,

အဆိုပါ settype () function ကိုပြောင်းလဲခြင်းသည်ပြောင်းလဲခြင်းအောင်မြင်မှုရှိမရှိညွှန်ပြနေသော boolean value ကိုပြန်ပို့သည်။ ပြောင်းလဲခြင်းသည်အောင်မြင်သည်ဆိုပါက စစ်မှန်ပါ

2 ။ ပြောင်းလဲခြင်းပျက်ကွက်ခြင်းကြောင့်ဖြစ်ပေါ်လာသောအမှားများကိုရှောင်ပါ

SetTYPE () ကို အသုံးပြုသောအခါ passed variable ကိုသတ်မှတ်ထားသောအမျိုးအစားသို့ ပြောင်းလဲ. မရပါက PHP သည်ခွဲစိတ်ကုသမှုကိုလျစ်လျူရှုခြင်းသို့မဟုတ်မမျှော်လင့်သောရလဒ်များကိုထုတ်ဖော်ပြောဆိုနိုင်သည်။ ဤပြ problems နာများကိုရှောင်ရှားရန်အောက်ပါနည်းလမ်းများကိုရယူနိုင်ပါသည်။

(1) လက်ရှိ variable ကို၏လက်ရှိအမျိုးအစားစစ်ဆေးပါ

အမျိုးအစားပြောင်းလဲခြင်းမပြုမီ, ပထမ ဦး စွာပြောင်းလဲခြင်းသည်အဓိပ္ပာယ်ရှိစေရန်သေချာသည့်လက်ရှိ variable အမျိုးအစားကို ဦး စွာစစ်ဆေးပါ။ Variable အမျိုးအစားကိုအလွယ်တကူရရှိနိုင်သည့် GetType () function ကိုသုံးပါ။

 $var = "123";
if (gettype($var) != 'integer') {
    settype($var, 'integer');
}

ဤနည်းအားဖြင့်မလိုအပ်သောအမျိုးအစားပြောင်းလဲခြင်းကိုရှောင်ရှားနိုင်ပြီးပြောင်းလဲခြင်းမတိုင်မီပစ်မှတ်အမျိုးအစားသည်သင့်လျော်ကြောင်းသေချာစေနိုင်သည်။

(2) ဒေတာကိုစစ်ဆေးရန် _ * () function ကိုသုံးပါ

is_ * () function သည် is_numeric () , is_string () , is_bool () စသည်တို့ကိုစစ်ဆေးရန် PHP မှပေးသောလုပ်ဆောင်ချက်အချို့မှာ PHP မှပေးသောလုပ်ဆောင်ချက်များဖြစ်သည်။ ဤလုပ်ဆောင်ချက်များကိုအမျိုးအစားပြောင်းလဲခြင်းမပြုမီပြောင်းလဲခြင်းအခြေအနေများနှင့်ကိုက်ညီစေရန်ဤလုပ်ဆောင်ချက်များကိုသုံးနိုင်သည်။

 $var = "100";
if (is_numeric($var)) {
    settype($var, "int");
} else {
    echo "Integer အမျိုးအစားသို့ပြောင်းလို့မရပါဘူး";
}

ဤချဉ်းကပ်မှုသည်မှားယွင်းသောပြောင်းလဲမှုများကိုရှောင်ရှားရန်ကူညီသည်။

(3) လုပ်ငန်းစဉ် null တန်ဖိုးများနှင့်ပုံမှန်တန်ဖိုးများ

Settype () မျှော်လင့်ထားသည့်အတိုင်း null valuse (e.g. null ) ကိုမကိုင်တွယ်နိုင်ပါ။ SetTTYPE () သည် Null တန်ဖိုးများကိုဖြစ်စဉ်များပြုလုပ်သောအခါ၎င်းကို default "သုည" တန်ဖိုးသို့ပြောင်းလဲနိုင်သည်။ ဥပမာအားဖြင့်, ဗလာကြိုးတစ်ချောင်းကို Boolean Fust သို့ပြောင်းလဲလိမ့်မည် ဤအရာကိုရှောင်ရှားရန်အမျိုးအစားပြောင်းလဲမှုကိုမလုပ်ဆောင်မီ variable ကိုမလုပ်ဆောင်မီဗလာရှိမရှိကိုသင်စစ်ဆေးနိုင်သည်။

 $var = "";
if (empty($var)) {
    $var = 0;  // ပုံမှန်တန်ဖိုးများကိုပေးပါ
}
settype($var, "int");

၎င်းသည် Null တန်ဖိုးများကိုပြုပြင်ပြောင်းလဲခြင်းခံရသည့်တိုင်ပြောင်းလဲခြင်းသည်မမျှော်လင့်သောရလဒ်များမရရှိပါ။

3 ။ သွယ်ဝိုက်အမျိုးအစားပြောင်းလဲခြင်းကြောင့်ဖြစ်သည့်ပြ problems နာများကိုရှောင်ပါ

PHP သည်စာလုံးပေါင်းစာရိုက်သည့်ဘာသာစကားဖြစ်သည်။ ဆိုလိုသည်မှာအချို့ဖြစ်ရပ်များတွင် PHP သည်သွယ်ဝိုက်သောပုံစံပြောင်းလဲခြင်းကိုအလိုအလျောက်လုပ်ဆောင်လိမ့်မည်။ ဤသွယ်ဝိုက်ပြောင်းလဲခြင်းသည်ခန့်မှန်းရခက်သည့်ရလဒ်များကိုဖြစ်ပေါ်စေနိုင်သည်။ အထူးသဖြင့်ဒေတာအမျိုးအစားသည်မရှင်းလင်းသောအခါသွယ်ဝိုက်ပြောင်းလဲခြင်းများသည်ပရိုဂရမ်အမှားများသို့မဟုတ်စွမ်းဆောင်ရည်ဆိုင်ရာပြ issues နာများကိုဖြစ်စေနိုင်သည်။ ထို့ကြောင့် SetTYPE ကို အသုံးပြုသောအခါသွယ်ဝိုက်ပြောင်းလဲခြင်းများကိုမှီခိုခြင်းနှင့်ပစ်မှတ်အမျိုးအစားကိုအတိအလင်းဖော်ပြရန်အကောင်းဆုံးဖြစ်သည်။

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

 $var = "123abc";  // string တွင်နံပါတ်များနှင့်အက္ခရာများပါရှိသည်
settype($var, "int");  // ပြောင်းလဲခြင်းပြီးနောက်၎င်းသည်ဖြစ်လာလိမ့်မည်0,အကေြာင်းမှာPHPnon-certicer numeric numeric ring string ကိုကိန်းတစ်ခုသို့ပြောင်းရန်ကြိုးစားပါ

ဤကိစ္စတွင် string သည်မမျှော်လင့်သောရလဒ်များကိုရှောင်ရှားရန်ပြောင်းလဲခြင်းမပြုမီမမှန်ကန်တဲ့ဇာတ်ကောင်များပါ 0 င်ခြင်းရှိမရှိစစ်ဆေးရန်အကောင်းဆုံးဖြစ်သည်။

4 ။ မလိုအပ်သောအမျိုးအစားပြောင်းလဲခြင်းကိုရှောင်ကြဉ်ပါ

အမျိုးအစားပြောင်းလဲခြင်းကိုယ်တိုင်ကအကုန်အကျများသောစစ်ဆင်ရေးတစ်ခုဖြစ်ပြီးအလွန်အကျွံပြောင်းလဲခြင်းအစီအစဉ်စွမ်းဆောင်ရည်ကိုအကျိုးသက်ရောက်နိုင်သည်။ ထို့ကြောင့်ကုဒ်ရေးသည့်အခါမလိုအပ်သောအမျိုးအစားပြောင်းလဲခြင်းကိုရှောင်ပါ။ အထူးသဖြင့်စွမ်းဆောင်ရည် - အထိခိုက်မခံသောကုဒ်တွင် SetTTYPE () သို့ခေါ်ဆိုမှုကိုအနည်းဆုံးပြုလုပ်သင့်သည်။

 // မလိုအပ်သောအမျိုးအစားပြောင်းလဲခြင်း
$var = 123;
settype($var, "string");  // အဘယ်သူမျှမပြောင်းလဲခြင်းလိုအပ်သည်,တိုက်ရိုက်အသုံးပြုပါ$varမှျ

5 ။ ဘုံအမှားအယွင်းများနှင့်ထောင်ချောက်များ

  • ပြောင်းလဲခြင်းပျက်ကွက်ခြင်းအမှား - အစောပိုင်းတွင်ဖော်ပြခဲ့သည့်အတိုင်း SetTTALPE () သည် အချက်အလက်များကိုအောင်မြင်စွာပြောင်းလဲခြင်းမပြုနိုင်ပါက faltype () မှားယွင်းစွာ ပြန်ပို့နိုင်သည်။ သို့သော်အချို့သောကိစ္စရပ်များတွင်ပြောင်းလဲခြင်းသည်အမှားအယွင်းမရှိဘဲပြောင်းလဲခြင်းသည်တိတ်ဆိတ်စွာကျရောက်အောင်မကျမိနိုင်ပါ။ ထို့ကြောင့် SetType () ကို အသုံးပြုသောအခါပြန်လာတန်ဖိုးကိုအမြဲတမ်းစစ်ဆေးရန်အကြံပြုသည်။

     $var = "abc";
    if (!settype($var, "int")) {
        echo "အမျိုးအစားပြောင်းလဲခြင်းမအောင်မြင်ပါ";
    }
    
  • အထူးသ ဖြင့် floatval () နှင့် floatval ကဲ့သို့သောလုပ်ဆောင်ချက်များကိုပေါင်းစပ်ခြင်းများတွင်အထူး သဖြင့် floatval () နှင့် floatval () သည် settentpe () သည်မူလ variable ကိုတိုက်ရိုက်ပြောင်းလဲခြင်းမရှိဘဲပြောင်းလဲခြင်းတန်ဖိုးကိုကျော်လွန်သွားလိမ့်မည်။

     $var = "123abc";
    $result = intval($var);  // ရလဒ်ကတော့123,ဒါဟာမူလ variable ကိုအကျိုးသက်ရောက်လိမ့်မည်မဟုတ်ပါ$var
    

6 ။ အကျဉ်းချုပ် - အကောင်းဆုံးအလေ့အကျင့်များ

  • အမျိုးအစားပြောင်းလဲခြင်းမပြုမီ GetType () ကို သုံး ပါ

  • null တန်ဖိုးများအတွက်မမျှော်လင့်သောအမျိုးအစားပြောင်းလဲခြင်းကိုရှောင်ရှားရန်ပုံမှန်တန်ဖိုးများကိုသုံးပါ။

  • သွယ်ဝိုက်သောအမျိုးအစားပြောင်းလဲခြင်းကိုရှောင်ကြဉ်ပါ။

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

  • Setterype () ၏ပြန်လာတန်ဖိုးကိုအာရုံစိုက်ပြီးအမျိုးအစားပြောင်းလဲခြင်းပျက်ကွက်မှုကိုကိုင်တွယ်ပါ။

  • လိုအပ်သည့်အခါ Intval () နှင့် floatval () ကဲ့သို့သောလုပ်ဆောင်ချက်များကိုမူလ variable ကိုတိုက်ရိုက်ပြုပြင်မွမ်းမံမည့်လုပ်ဆောင်မှုကိုအသုံးပြုရန်စဉ်းစားပါ။

အထက်ဖော်ပြပါအကောင်းဆုံးအလေ့အကျင့်များကိုလိုက်နာခြင်းဖြင့်မမျှော်လင့်သောအပြုအမူနှင့်အမှားများကိုထိထိရောက်ရောက်ရှောင်ရှားနိုင်သည်