Constants သည်ပရိုဂရမ်တွင် run စဉ်အတွင်းသတ်မှတ်ထားသည့်တန်ဖိုးများဖြစ်သည်။ PHP တွင်ကိန်းသားများကိုပုံမှန်အားဖြင့် သတ်မှတ်ခြင်း () function ကိုသတ်မှတ်သည်။ စဉ်ဆက်မပြတ်ကိန်းဂဏန်းများအနေဖြင့် variable များနှင့်ဆင်တူသော်လည်း variable များနှင့်ဆင်တူသော်လည်း variable များနှင့်မတူဘဲ၎င်းကိုသတ်မှတ်ထားသည့်နောက်စဉ်ဆက်မပြတ်တန်ဖိုးကို ပြောင်းလဲ. မရပါ။
စဉ်ဆက်မပြတ်အသုံးပြုသောအခါ, အကယ်. သင်သည်နံပါတ်တစ်ခုနှင့်စဉ်ဆက်မပြတ်အမည်တစ်ခုဖြစ်ပါက PHP parsing အမှားများကိုဖြစ်စေလိမ့်မည်။ ဘာဖြစ်လို့လဲဆိုတော့ PHP သည်နံပါတ်များကိုနံပါတ်များအဖြစ်စတင်သည့်ကြိုးများကိုအစပြုခြင်း, ဥပမာအားဖြင့်:
define('3L', 'three');
အထက်ပါကုဒ်ကို PHP မှခွဲထုတ်လိမ့်မည်။
define(3L, 'three');
နံပါတ်များသည်အဆက်မပြတ်အမည်များအရတရားမဝင်ပါ။
နံပါတ်တစ်ခုနှင့်အစပြုခြင်းကိုရှောင်ရှားရန်လွယ်ကူသောနည်းလမ်းမှာစဉ်ဆက်မပြတ်အမည်မတိုင်မီစာတစ်စောင်ထည့်ရန်ဖြစ်သည်။
// စဉ်ဆက်မပြတ်နာမည်မှအက္ခရာများထည့်ခြင်းဥပမာ
define('L3', 'three');
echo L3; // အဆိုပါ output ရလဒ်ဖြစ်ပါတယ် 'three'
ဤနည်းဖြင့် PHP သည်နံပါတ်တစ်ခုနှင့်အစပြုသည့်တရားမ 0 င်အမည်ထက်မသာလျှင် l3 ဟုအမည်တစ်ခုအဖြစ်အသိအမှတ်ပြုလိမ့်မည်။
နောက်ထပ် canonical နည်းလမ်းသည်အဆက်မပြတ်အမည်ကို string တစ်ခုအဖြစ်ဖြတ်သန်းရန်ဖြစ်သည်။
// string စဉ်ဆက်မပြတ်အမည်များကိုအသုံးပြု။ ဥပမာ
define('THREE', 'three');
echo THREE; // အဆိုပါ output ရလဒ်ဖြစ်ပါတယ် 'three'
ဤနည်းအားဖြင့်စဉ်ဆက်မပြတ်နာမည်ကိုခွဲခြမ်းစိတ်ဖြာစဉ်အတွင်းမရေရာဒွိဟရှောင်ရှားရန် string တစ်ခုအဖြစ်အတိအလင်းကြေငြာခဲ့သည်။
အောက်ဖော်ပြပါအတိုင်း PHP သည်နောက်ခံပြထားသည့်အတိုင်းအဆက်မပြတ်အမည်များမှ စ. အဆက်မပြတ်အမည်များမှလွတ်မြောက်ရန်အဆက်မပြတ်အမည်များမှလွတ်မြောက်ရန်လည်းပံ့ပိုးသည်။
// Backslash ကိုအသုံးပြုပြီးဂဏန်းအဆက်မပြတ်အမည်များမှလွတ်မြောက်ခြင်းဥပမာ
define('\3L', 'three');
echo L3; // အဆိုပါ output ရလဒ်ဖြစ်ပါတယ် 'three'
ဤချဉ်းကပ်မှုသည်တရားမ 0 င်ကိန်းဂဏန်းအမည်များကြောင့်အမှားအယွင်းများကိုရှောင်ရှားနိုင်သော်လည်းအတော်လေးခဲသည်။
PHP အမှား "တရားမ 0 င်နံပါတ်များကိုအဆက်မပြတ်အမည်များကိုအသုံးပြုခြင်း" ကိုကြုံတွေ့ရသောအခါအထက်ပါနည်းလမ်းသုံးခုကိုဖြေရှင်းနိုင်သည်။ အသုံးအများဆုံးနှင့်အကြံပြုထားသည့်နည်းလမ်းမှာစဉ်ဆက်မပြတ်အမည်ကိုရှေ့ဆက်သို့မဟုတ် string တစ်ခု၏ပုံစံကိုသုံးရန်ဖြစ်သည်။ စံစဉ်ဆက်မပြတ် naming သည် syntax အမှားများကိုရှောင်ရှားနိုင်ရုံသာမကကုဒ်၏ဖတ်နိုင်မှုနှင့်ထိန်းသိမ်းခြင်းကိုပိုမိုကောင်းမွန်စေသည်။