လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP အမှား - undefined Properties ကိုရယူရန်ကြိုးစားနေသည့်ဘုံပြ problem နာကိုမည်သို့ဖြေရှင်းရမည်နည်း

PHP အမှား - undefined Properties ကိုရယူရန်ကြိုးစားနေသည့်ဘုံပြ problem နာကိုမည်သို့ဖြေရှင်းရမည်နည်း

M66 2025-06-12

PHP အမှား - undefined Properties ကိုရယူရန်ကြိုးစားနေသည့်ဘုံပြ problem နာကိုမည်သို့ဖြေရှင်းရမည်နည်း

PHP Development တွင်စတင်ခဲ့ပြီးအတွေ့အကြုံရှိသည့် developer များက "undefined properties များကိုရယူရန်ကြိုးစားခြင်း" ၏အမှားတစ်ခုကိုကြုံတွေ့ရနိုင်သည်။ ဤအမှားသည်များသောအားဖြင့်မတည်ရှိသည့်ပစ္စည်းဥစ်စာပိုင်ဆိုင်မှုကိုရယူရန်ကြိုးစားခြင်းကြောင့်ဖြစ်သည်။ ဤဆောင်းပါးသည် developer များဤပြ problem နာကိုအလွယ်တကူကိုင်တွယ်ဖြေရှင်းရန်ကူညီရန်ဘုံဖြေရှင်းချက်အချို့ကိုမိတ်ဆက်ပေးလိမ့်မည်။

1 ။ attribute ကိုမှန်ကန်စွာသတ်မှတ်သည်ရှိမရှိစစ်ဆေးပါ

အတန်းထဲတွင်ဂုဏ်သတ္တိများကိုအသုံးမပြုမီ၎င်းတို့ကိုမှန်ကန်စွာသတ်မှတ်ထားကြောင်းသေချာပါစေ။ PHP တွင် Attributes များကိုသတ်မှတ်သောအခါသင့်လျော်သော Access Modifiers (အများပြည်သူ, အကာအကွယ်ပေးထားသောသို့မဟုတ်ပုဂ္ဂလိကပိုင်) ကိုအသုံးပြုရန်နှင့် attribute name ကိုမှန်ကန်စွာစာလုံးပေါင်းထားပြီးတူညီသောအမှုရှိသည်ဟုသေချာစေသည်။

Class Classname {
    အများပြည်သူ $ definedproperty; // မှန်ကန်စွာသတ်မှတ်ထားသောအိမ်ခြံမြေအကျိုးဆောင်အများပြည်သူ function ကို Somemethod ()
        ECHO $ ​​-> undefinityproperty; // untefined property များ}
}

အထက်ပါကုဒ်များတွင်ပြထားသည့်အတိုင်းမှန်ကန်သော attribute definition နှင့် method action action attribute များရယူသည့်အခါအမှားအယွင်းများကိုရှောင်ရှားလိမ့်မည်။

2 ။ attribute တွေကိပါဘူး

PHP တွင်အတန်းထဲတွင်အတန်း၏ဂုဏ်သတ္တိများကိုစာသင်ခန်းအတွင်းတွင် 0 င်ရောက်ခြင်းမပြုမီခိုင်လုံသောတန်ဖိုးရှိသည်။ ပစ္စည်းဥစ်စာပိုင်ဆိုင်မှုကိုမသတ်မှတ်ထားပါကဝင်ရောက်ခွင့်စဉ်အတွင်းအမှားတစ်ခုပေါ်ပေါက်လာနိုင်သည်။

Class Classname {
    Public DefinededProperty = "ပုံမှန်တန်ဖိုး", // အိမ်ခြံမြေဆိုင်ရာ Public function somemethod () {)
        ECHO $ ​​ဒီ -> သတ်မှတ်ချက်, // သတ်မှတ်ထားသောအိမ်ခြံမြေ၏တန်ဖိုးကို output}
}

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

3 ။ attribute ကိုတည်ရှိရှိမရှိစစ်ဆေးရန် is asingset () function ကိုသုံးပါ

ပစ္စည်းဥစ်စာပိုင်ဆိုင်မှုကိုမကြည့်မီပစ္စည်းဥစ်စာပိုင်ဆိုင်မှုရှိ, မရှိကိုစစ်ဆေးရန် is is unset () function ကိုသုံးနိုင်သည်။ အဆိုပါ isionset () function ကို function ကိုပြန်ဆိုထားတဲ့ boolean value ကိုပြန်ပို့သည်။

Class Classname {
    အများပြည်သူ $ definedproperty;
    အများပြည်သူ function ကို Somemethod ()
        IF (ISSET ($ ဤ -> definedproperty)) {
            ECHO $ ​​ဒီ -> သတ်မှတ်ချက်,
        } အခြား
            Echo "Properties ကိုသတ်မှတ်မထားဘူး";
        }
    }
}

အထက်ပါကုဒ်သည်ပစ္စည်းဥစ်စာပိုင်ဆိုင်မှုရှိမရှိစစ်ဆေးရန် ISSET () function ကိုမည်သို့အသုံးပြုရမည်ကိုပြသသည်။ ပစ္စည်းဥစ်စာပိုင်ဆိုင်မှုမရှိပါကအမှားတစ်ခုသည် output ကိုဖြစ်သည်။

4 ။ Magic Methods __GET () နှင့် __s) ကိုသုံးပါ။

Magic Methods __GET () နှင့် __SET) သည် PHP တွင် developer များအား developer များအနေဖြင့် developer များအနေဖြင့်အပြုအမူများကို unefined Properties များကိုကြည့်ရှုရန်ခွင့်ပြုသည်။ ဤနည်းလမ်းနှစ်ခုသည်အရာဝတ်ထုဂုဏ်သတ္တိများကိုအမှားအယွင်းများကိုရှောင်ရှားရန်သတ်မှတ်ထားသောအခါ default logic ကိုပေးနိုင်သည်။

Class Classname {
    ပုဂ္ဂလိက $ ဒေတာ = array (); // attributes attribute များသိုလှောင်ရန်အများသုံး function __GET ($ အမည်) {
        IF (ISSET ($ - ဒီ -> ဒေတာ [$ အမည်])))
            $ သို့ပြန်သွားရန် $:> ဒေတာ [$ အမည်];
        } အခြား
            "ပစ္စည်းဥစ်စာပိုင်ဆိုင်မှုမတည်ရှိပါဘူး" ပြန်လာ;
        }
    }

    Public function __SE __s ကြည့်ခြင်း ($ အမည်, $ တန်ဖိုး) __
        $ -> ဒေတာ [$ အမည်] = $ တန်ဖိုး;
    }
}

ဤဥပမာတွင်ကျွန်ုပ်တို့သည် Properties အားလုံးသိမ်းဆည်းရန်ပုဂ္ဂလိကပိုင်ဆိုင်မှု $ ဒေတာများကို အသုံးပြု. Magic Methods __GET () နှင့် __SET () နှင့် __ ဂစ်) နှင့် __ ဂစ်) နှင့် __ တဆင့်) မှတစ်ဆင့်ပြုပြင်ခြင်းဆိုင်ရာဂုဏ်သတ္တိများအတွက်ပြုပြင်ခြင်းဆိုင်ရာယုတ္တိဗေဒကိုအသုံးပြုသည်။ မတည်ရှိသောဂုဏ်သတ္တိများကိုရယူသည့်အခါ __GET () နည်းလမ်းသည်ထုံးစံအမှားမက်ဆေ့ခ်ျကိုပြန်ပို့သည်။

အကျဉ်းချုပ်

PHP ရှိအမှားများကို "undefined properties" အမှားများကို "ရယူရန်ကြိုးစားခြင်း" အမှားသည်ဘုံနှင့်ဖြေရှင်းရန်လွယ်ကူသည်။ developer များကမှန်ကန်သော attribute definition ကိုသုံးနိုင်သည်။ attribute တွေက attribute တွေတည်ရှိမလားဆိုတာကိုစစ်ဆေးဖို့, ဤနည်းလမ်းများသည် developer များဤအမှားကိုထိရောက်စွာရှောင်ရှားရန်ကူညီလိမ့်မည်။