PHP ပရိုဂရမ်တွင် "အစာရှောင်သောသတ်မှတ်ထားသောစဉ်ဆက်မပြတ်သတ်မှတ်ထားသောစဉ်ဆက်မပြတ်" အမှားသည် developer များကြုံတွေ့ရသည့်ဘုံပြ problems နာများထဲမှတစ်ခုဖြစ်သည်။ ဤအမှားသည်များသောအားဖြင့် variable များသို့မဟုတ်စံသတ်မှတ်ထားသောအသုံးအနှုန်းများကိုအဆက်မပြတ်တန်ဖိုးများအဖြစ်အသုံးပြုရန်ကြိုးစားသောအခါပရိုဂရမ်ကိုမှန်ကန်စွာလုပ်ဆောင်ရန်ပျက်ကွက်သည်။ ဤဆောင်းပါးသည်ထိုကဲ့သို့သောအမှားအယွင်းများ၏အကြောင်းရင်းများနှင့်ပြ problem နာကိုနည်းအမျိုးမျိုးဖြင့်မည်သို့ထိထိရောက်ရောက်ဖြေရှင်းနိုင်ပုံနှင့်ပြ problem နာကိုအများအားဖြင့်ဖြေရှင်းနိုင်ပုံရသည်။
PHP တွင်စဉ်ဆက်မပြတ်သည်ပရိုဂရမ်ကွပ်မျက်စဉ်အတွင်းတန်ဖိုးမပြောင်းလဲဘဲမပြောင်းလဲသေးသောအမှတ်အသားကိုရည်ညွှန်းသည်။ ပုံမှန်အားဖြင့်ကိန်းသားများကို `define ()` function ကိုသတ်မှတ်သည်။ ဥပမာအားဖြင့်, အောက်ပါကုဒ်သည် `max_size` ဟုအမည်မဖော်လိုသောစဉ်ဆက်မပြတ်ဖန်တီးသည်။
define('MAX_SIZE', 100);
စဉ်ဆက်မပြတ်ကိန်းဂဏန်းအဓိပ္ပါယ်သည်တန်ဖိုးကိုနံပါတ်တစ်ခုသို့မဟုတ်ကြိုးကဲ့သို့သောပကတိဖြစ်ရန်လိုအပ်သည်။ အကယ်. ကျွန်ုပ်တို့သည်တစ် ဦး စဉ်ဆက်မပြတ်၏တန်ဖိုးအဖြစ် variable တစ်ခုသို့မဟုတ်အသုံးအနှုန်းကိုသတ်မှတ်ရန်ကြိုးစားလျှင်၎င်းသည် "အစာမစားနိုင်သည့်အမြဲတမ်း" အမှားတစ်ခုဖြစ်ပေါ်လိမ့်မည်။ အောက်ပါဥပမာတွင်ပြထားတဲ့အတိုင်း -
$size = 200;
define('MAX_SIZE', $size);
ဤဥပမာတွင် `$ အရွယ်အစားသည်တန်ဖိုးကိုပြောင်းလဲနိုင်သော variable တစ်ခုဖြစ်သည်။ အဘယ်သူ၏တန်ဖိုးကိုပြောင်းလဲနိုင်သည့် variable တစ်ခုဖြစ်ပြီး၎င်းကိုစဉ်ဆက်မပြတ်ကိန်းဂဏန်းတန်ဖိုးအဖြစ်အသုံးမပြုပါ။
သင် "အစာမစားသောအမြဲတမ်းသတ်မှတ်ထားသောစဉ်ဆက်မပြတ်" အမှားတစ်ခုကိုသင်ကြုံတွေ့ရသောအခါ၎င်းကိုဖြေရှင်းရန်ဤအဆင့်များကိုသင်လိုက်နာနိုင်သည်။
ပထမ ဦး စွာ PHP မှပေးသောအမှားမက်ဆေ့ခ်ျကိုစစ်ဆေးပါ။ များသောအားဖြင့် PHP သည်တိကျသောအမှားနေရာများနှင့်အကြောင်းပြချက်များကိုထုတ်ဖော်ပြောဆိုလိမ့်မည်။ ဥပမာအားဖြင့်:
Notice: Use of undefined constant MAX_SIZE - assumed 'MAX_SIZE' in C:\xampp\htdocs\example.php on line 8
အမှားမက်ဆေ့ခ်ျများဖြင့်သင်သည်သတ်သတ်မှတ်မှတ်ကုဒ်နှင့်ပြ problem နာကိုအလွယ်တကူရှာဖွေနိုင်သည်။
PHP ၏ syntax လိုအပ်ချက်များနှင့်အမြဲတမ်းအဓိပ္ပါယ်ဖွင့်ဆိုခြင်းရှိမရှိစစ်ဆေးပါ။ စဉ်ဆက်မပြတ်၏အမည်သည် string တစ်ခု၏ပုံစံဖြင့်ဖြစ်သင့်ပြီး `$` သင်္ကေတကိုမသုံးနိုင်ပါ။ အကယ်. အဆက်မပြတ်တန်ဖိုးသည် variable တစ်ခုသို့မဟုတ်အသုံးအနှုန်းတစ်ခုဖြစ်ပါက၎င်းကိုပကတိတန်ဖိုးကိုပြုပြင်သင့်သည်။ ဥပမာအားဖြင့်, အောက်ပါကုဒ်သည်မှားသည် -
MAX_SIZE = 100;
၎င်းကိုပြုပြင်သင့်သည် -
define('MAX_SIZE', 100);
စဉ်ဆက်မပြတ်ကိန်းတစ်ခု၏တန်ဖိုးသည် variable တစ်ခုမှလာလျှင်သက်ဆိုင်ရာ variable ကိုစဉ်ဆက်မပြတ်သတ်မှတ်ခြင်းမပြုမီမှန်ကန်စွာသတ်မှတ်ထားကြောင်းသေချာစေရန်လိုအပ်သည်။ ဥပမာအားဖြင့်:
$size = 200;
define('MAX_SIZE', $size);
`$ အရွယ်အစားကိုသတ်မှတ်ထားပြီး` define () `ခေါ်ဆိုမှုမတိုင်မှီသတ်မှတ်ထားကြောင်းသေချာအောင်လုပ်ပါ။ အကယ်. `$ အရွယ်အစား # variable ကိုဤမတိုင်မီသတ်မှတ်မထားပါကကုဒ်ကိုပြန်လည်ပြုပြင်ရန်လိုအပ်သည်။
အထက်ဖော်ပြပါနည်းလမ်းသည်ပြ the နာကိုမဖြေရှင်းနိုင်ပါကကိန်းရှင်များအစားကမ္ဘာလုံးဆိုင်ရာ variable များသို့မဟုတ်လုပ်ဆောင်ချက်များကို အသုံးပြု. သီးခြား variable များကိုအစားထိုးရန်အခြားနည်းလမ်းများကိုအသုံးပြုရန်စဉ်းစားပါ။ ၎င်းသည် "အစာမစားသောကိန်းဂဏန်းများ" အမှားများကိုသာရှောင်ရှားနိုင်ရုံသာမကကုဒ်ကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်စေသည်။
"အစာမစားသောသတ်မှတ်ထားသောကိန်းဂဏန်းများ" အမှားများသည် PHP တွင်တွေ့ရလေ့ရှိပြီးပုံမှန်အဓိပ္ပာယ်ဖွင့်ဆိုချက်များ (သို့) variable များကိုမသင့်လျော်သောအသုံးပြုမှုများနှင့်မကြာခဏဆက်စပ်မှုရှိသည်။ Constants ၏မှန်ကန်သောအသုံးပြုမှုကိုနားလည်ခြင်းအားဖြင့်အမြဲတမ်းနှင့် variable များနှင့်အဓိပ္ပါယ်ဖွင့်ဆိုချက်ကိုစစ်ဆေးခြင်းအားဖြင့်သင်သည်ထိုကဲ့သို့သောအမှားအယွင်းများကိုထိရောက်စွာရှောင်ရှားနိုင်သည်။ ဤပြ problems နာများကိုပြုပြင်ခြင်းသည်ကုဒ်၏တည်ငြိမ်မှုကိုတိုးတက်စေရုံသာမက debugging ထိရောက်မှုကိုလည်းတိုးတက်စေသည်။