လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> အဘယ်ကြောင့်အချို့သောကိန်းဂဏန်းများအနေဖြင့် null တန်ဖိုးများအဖြစ်ပေါ်လာကြသနည်း

အဘယ်ကြောင့်အချို့သောကိန်းဂဏန်းများအနေဖြင့် null တန်ဖိုးများအဖြစ်ပေါ်လာကြသနည်း

M66 2025-05-22

Get_Defined_constants function သည်သတ်မှတ်ထားသောကိန်းနှင့်၎င်းတို့၏သက်ဆိုင်ရာတန်ဖိုးများအားလုံးပါ 0 င်သည့်ခင်းကျင်းမှုကိုပြန်လည်ရောက်ရှိစေသည်။ Const ကို သတ်မှတ်ခြင်း () သို့မဟုတ် သီးခြား သော့ချက်စာလုံးကသတ်မှတ်ထားပြီး၎င်းတို့သည် script တွင်မပြောင်းလဲနိုင်ပါ။

ဥပမာအားဖြင့်, အောက်ပါကုဒ်သည် Constitants ကို သတ်မှတ်. သတ်မှတ်ထားသည့်ကိန်းဂဏန်းများကိုကြည့်ရှုရန် Conl_Defines_Constants ကို အသုံးပြုရမည်ကိုပြသသည်။

 define("SITE_URL", "https://m66.net");
define("SITE_NAME", "M66");

$constants = get_defined_constants();
print_r($constants);

output ကိုဆင်တူလိမ့်မည်:

 Array
(
    [SITE_URL] => https://m66.net
    [SITE_NAME] => M66
    ...
)

ဤနည်းအားဖြင့်သတ်မှတ်ထားသောကိန်းနှင့်၎င်းတို့၏တန်ဖိုးများအားလုံးကိုသင်တွေ့နိုင်သည်။

အဘယ်ကြောင့်အချို့သောကိန်းဂဏန်းများအနေဖြင့် null တန်ဖိုးများအဖြစ်ပေါ်လာကြသနည်း

တခါတရံမှာ ရတဲ့အချိန် ရောက်လာရင်အချို့သည်အချို့ကိန်းဂဏန်းများ၏တန်ဖိုးများမှာဗလာပေါ်လာလိမ့်မည်။ ဤအခြေအနေကိုအကြောင်းပြချက်များစွာကြောင့်ဖြစ်ပေါ်လာနိုင်သည်။

  1. Constants မှန်ကန်စွာတာဝန်ပေးအပ်ကြသည်မဟုတ် အမြဲတမ်းသတ်မှတ်သည့်အခါချက်ချင်းတန်ဖိုးကိုတန်ဖိုးထားရမည်။ အကယ် . အမြဲတမ်း သတ်မှတ်ခြင်း () သို့မဟုတ် Const statement တွင်စနစ်တကျမအောင်မြင်ပါက,

     define("EMPTY_CONSTANT", "");
    

    အထက်ပါကုဒ်သည်အချည်းနှီးသော string ဖြင့်စဉ်ဆက် မပြတ်ဗလာဖြစ်နေသော ဗလာဖြစ်သည်။ Get_Defined_constants ဟုခေါ်သောအခါ, output ကိုပြလိမ့်မည်။

     [EMPTY_CONSTANT] => 
    
  2. စဉ်ဆက်မပြတ်အဓိပ္ပါယ်ဖွင့်ဆိုခြင်း PHP တွင်ကိန်းဂဏန်းများအနေဖြင့်များသောအားဖြင့်ကမ္ဘာလုံးဆိုင်ရာဖြစ်သည်။ သို့သော်အချို့သော scopes အချို့ (ထိုကဲ့သို့သောအတွင်းပိုင်းလုပ်ဆောင်ချက်များကိုကဲ့သို့) constants ကိုသတ်မှတ်ပါက Get_Defined_constants မှ ပြန်လာမည်မဟုတ်ပါ။

     function defineInsideFunction() {
        define("FUNC_CONST", "Hello, World!");
    }
    
    defineInsideFunction();
    print_r(get_defined_constants());
    

    အကယ်. သင်သည် function အတွင်းစဉ်ဆက်မပြတ်သတ်မှတ်ထားပါက Get_Defined_Comants ၏ရလဒ်တွင်ပေါ်လာမည်မဟုတ်ပါ။ ဤပြ problem နာကိုရှောင်ရှားရန် Constants ၏အဓိပ္ပါယ်ဖွင့်ဆိုချက်ကိုကမ္ဘာလုံးဆိုင်ရာနယ်ပယ်တွင်ပြုလုပ်ရန်သေချာစေပါ။

  3. အခြေအနေစဉ်ဆက်မပြတ်အဓိပ္ပါယ် ဖွင့်ဆိုထားသည် စဉ်ဆက်မပြတ်အဓိပ္ပါယ်ဖွင့်ဆိုချက်ကိုခြွင်းချက်ဖော်ပြချက်အချို့နှင့် ပတ်သတ်. မကျရောက်ပါကအခြေအနေကိုမကျေနပ်လျှင်အမြဲတမ်းသတ်မှတ်လိမ့်မည်မဟုတ်ပါ။ ထို့ကြောင့် Get_Defined_constants မှတစ်ဆင့်ရယူသည့်အခါဤကိန်းဂဏန်းများကိုပြသမည်မဟုတ်ပါ။

     if (false) {
        define("CONDITION_CONST", "This will not be defined");
    }
    

    ဤကိစ္စတွင်အခြေအနေ (သို့) Cape_Defined_constants ၏ရလဒ်တွင် အခြေအနေ မပေါ်လာပါ။

  4. ကြိုတင်သတ်မှတ်ထားသောကိန်းဂဏန်းများပျောက်ဆုံးနေ
    PHP ကိုယ်တိုင်က Php_version , php_os စသည်ဖြင့်ကြိုတင်သတ်မှတ်ထားသောကိန်းဂဏန်းများကိုသတ်မှတ်သည်။

    အချို့သောပတ်ဝန်းကျင်တွင်အချို့သောကိန်းဂဏန်းများသည်ပတ်ဝန်းကျင်ပေါ် မူတည်. ကွဲပြားနိုင်သည်။ ကြိုတင်သတ်မှတ်ထားသော contapens ကိုသတ်သတ်မှတ်မှတ်ပြင်ဆင်မှုတစ်ခုတွင်အချည်းနှီးသောကြိုတင်သတ်မှတ်ထားသည့်ကိန်းဂဏန်းများကိုသင်မြင်လျှင်သင်၏ PHP configuration သို့မဟုတ် running enform နာများကိုစစ်ဆေးရန်လိုအပ်နိုင်သည်။

အစဉ်အမြဲအစဉ်အမြဲ null နေသောအခြေအနေကိုရှောင်ရှားရန်?

null တန်ဖိုးများကိုပြသသည့်ကိန်းရှင်များကိုရှောင်ရှားရန်,

  1. စဉ်ဆက်မပြတ်သတ်မှတ်ထားသောအခါအချည်းနှီးသော string ကိုမဟုတ်ကြောင်းအမြဲတမ်းတန်ဖိုးရှိသည်ကိုသေချာအောင်လုပ်ပါ။

  2. Constants ၏အဓိပ္ပါယ်ဖွင့်ဆိုချက်ကိုကမ္ဘာအနှံ့တွင်ပြုလုပ်ထားပြီးဒေသဆိုင်ရာနယ်ပယ်အတွင်းသာသတ်မှတ်ခြင်းကိုရှောင်ရှားကြောင်းသေချာပါစေ။

  3. ခြွင်းချက်ကြေငြာချက်တစ်ခုတွင်စဉ်ဆက်မပြတ်သတ်မှတ်သည့်အခါအခြေအနေမှာအစဉ်အမြဲတည်မြဲသောအဓိပ္ပာယ်ဖွင့်ဆိုချက်ကိုအမြဲတမ်းကိုင်ထားရန်လိုအပ်သည်။

  4. အကယ်. ကြိုတင်သတ်မှတ်ထားသောစဉ်ဆက်မပြတ်ပျောက်ဆုံးနေပါကသက်ဆိုင်ရာကိန်းဂဏန်းများကို Runtime တွင်မှန်ကန်စွာတင်ဆောင်စေရန်သင်၏ PHP ပတ်ဝန်းကျင် configuration ကိုစစ်ဆေးပါ။