လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP အမှားကိုမည်သို့ဖြေရှင်းရမည်နည်း - ပုဂ္ဂလိကအဖွဲ့ဝင်များကိုရယူရန်ထိရောက်သောနည်းလမ်း

PHP အမှားကိုမည်သို့ဖြေရှင်းရမည်နည်း - ပုဂ္ဂလိကအဖွဲ့ဝင်များကိုရယူရန်ထိရောက်သောနည်းလမ်း

M66 2025-08-02

PHP အမှားကိုဖြေရှင်းပါ။ ပုဂ္ဂလိကအဖွဲ့ဝင်များကိုသင်ကြိုးစားရသည့်အကြောင်းအရင်း

PHP Development တွင်သီးသန့်အဖြစ်သတ်မှတ်ထားသောအတန်းသားကိုတိုက်ရိုက် 0 င်ရောက်ရန်ကြိုးစားသောအခါ, ဤပြ problem နာအတွက်အခြေခံကျသောအကြောင်းပြချက်သည် PHP ၏ Access Control Modism တွင်တည်ရှိသည်။ ပုဂ္ဂလိကအဖွဲ့ဝင်များသည်အတန်းအစား၏ပြည်တွင်း၌သာ 0 င်ရောက်နိုင်သည်။

PHPP 0 င်ခွင့်ခွင့်ပြုချက်ကိုမိတ်ဆက်ခြင်း

PHP သည် 0 င်ရောက်ခွင့်ပြုနိုင်စွမ်းကိုထိန်းချုပ်ရန်လက်လှမ်းမီမှုပြင်ဆင်ခြင်း 3 ခုကိုထောက်ပံ့ပေးသည်။

  • အများပြည်သူ: ဘယ်နေရာမှာမဆိုလက်လှမ်း။
  • အကာအကွယ်ပေးထားသော: အတန်းများနှင့်၎င်းတို့၏ခွဲများအတွက်သာလက်လှမ်းမီနိုင်သည်။
  • ပုဂ္ဂလိက - အသင်း 0 င်ကိုသတ်မှတ်ပေးသောအတန်းအတွင်း၌သာလက်လှမ်းသာရှိသည်။

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

__ ဂျက် () နှင့် __set) နည်းလမ်းများ သုံး. ပုဂ္ဂလိကအဖွဲ့ဝင်များကိုရယူပါ

PHP ၏ Magic Methods __GET () နှင့် __set () သည်ပုဂ္ဂလိကဂုဏ်သတ္တိများကိုသွယ်ဝိုက်။ ရယူရန်ခွင့်ပြုသည်။ ဤနည်းလမ်းနှစ်မျိုးဖြင့်ပုဂ္ဂလိက 0 န်ထမ်းများ၏တန်ဖိုးများကိုလုံခြုံစွာဖတ်ရှုခြင်းနှင့်စာဖြင့်ရေးသားနိုင်သည်။

 MyClass အတန်း
    ပုဂ္ဂလိက $ privatemember;

    Public function __GET ($ အမည်) {
        IF ($ အမည် === '' privateemember ') {
            $:> Priventemember $ ပြန်သွား;
        }
    }

    Public function __SE __s ကြည့်ခြင်း ($ အမည်, $ တန်ဖိုး) __
        IF ($ အမည် === '' privateemember ') {
            $ -> PrivateMember = $ တန်ဖိုး,
        }
    }
}

$ obj = myclass ();
$ obj-> PrivateMember = 'Hello, World!'; // ပုဂ္ဂလိကအဖွဲ့ဝင် ECHO $ OBJ-> Priventember; // ပုဂ္ဂလိကအဖွဲ့ဝင်၏တန်ဖိုးကိုရယူပါ

အထက်ဖော်ပြပါဥပမာတွင်ကျွန်ုပ်တို့သည် __ ဂျက် () ကိုအသုံးပြုရန်တောင်းဆိုထားသော attribute name သည် priventemembembember ရှိမရှိဆုံးဖြတ်ရန်ကျွန်ုပ်တို့အသုံးပြုသည်။ __set () ကိုအသုံးပြုရန် attribute ကိုသတ်မှတ်ရန်ကျွန်ုပ်တို့အသုံးပြုသည်။ ပုဂ္ဂလိကအဖွဲ့ဝင်များကိုတိုက်ရိုက်လက်လှမ်းမီမှုကြောင့်ဖြစ်ပေါ်လာသောအမှားများကိုရှောင်ရှားသည်။

arrayaccess interface ကိုအကောင်အထည်ဖော်ပါပုဂ္ဂလိကအဖွဲ့ဝင်များကို array ဝင်ရောက်ခွင့်ကိုအကောင်အထည်ဖော်ပါ

အကယ်. သင်သည်ပုဂ္ဂလိကအသင်း 0 င်များကိုတူညီသောနည်းဖြင့်ရယူလိုပါကအတန်းကို PHP ၏ built-in arrayaccess interface ကိုအကောင်အထည်ဖော်နိုင်ပြီးပြောင်းလွယ်ပြင်လွယ်လက်လှမ်းမီမှုရရှိရန်၎င်း၏နည်းလမ်းများကိုပြန်လည်ရေးနိုင်သည်။

 MyClass အမျိုးအစား MyCRCASS ကိုအကောင်အထည်ဖော်သည်
    ပုဂ္ဂလိက $ privatemember;

    အများဆိုင်အလုပ်လုပ် offsexists ($ offset) {
        $ offset === 'priventemember' ကိုပြန်သွားပါ။
    }

    အများပြည်သူ function offsetget ($ offset) {
        $ သို့ပြန်သွားရန် $ -> $ offset;
    }

    Public function offsetset ($ offset, $ တန်ဖိုး) {
        $ -> $ offset = $ တန်ဖိုး;
    }

    အများပြည်သူလုပ်ဆောင်မှု offsetunset ($ offset) {
        unset ($ - $ -> $ offset);
    }
}

$ obj = myclass ();
$ OBJ ['privateemember'] = 'ဟဲလို, ကမ္ဘာ!'; // သီးသန့်အဖွဲ့ဝင် ECHO $ OBJ ['priventemember'] ကိုသတ်မှတ်ပါ။ // ပုဂ္ဂလိကအဖွဲ့ဝင်၏တန်ဖိုးကိုရယူပါ

Arrayaccess Interface ကိုအကောင်အထည်ဖော်ခြင်းအားဖြင့်သင်သည်ပုဂ္ဂလိကအဖွဲ့ဝင်များကိုလည်ပတ်ရန်အတွက်ခင်းကျင်းခြင်းကဲ့သို့ syntax ကို သုံး. ကုဒ်ပြောင်းလွယ်ပြင်လွယ်တိုးတက်လာသည်။

အကျဉ်းချုပ်

PHP Error error သည် "ပုဂ္ဂလိကအဖွဲ့ဝင်များကိုကြည့်ရှုရန်ကြိုးစားပါ" ဟုသတိပေးသည်, Magic Methods __ __GET () နှင့် __SE) ကိုအသုံးပြုရန်သို့မဟုတ်ပုဂ္ဂလိကအဖွဲ့ 0 င်များကိုတရားဝင်နှင့်လုံခြုံစိတ်ချရသောနည်းလမ်းဖြင့် arrayaccess interface ကိုအကောင်အထည်ဖော်ရန်အကြံပြုသည်။ ၎င်းသည်အမှားအယွင်းများကိုရှောင်ရှားနိုင်ရုံသာမက Code ကိုပိုမိုကျယ်ပြန့်စွာနှင့်ထိန်းသိမ်းခြင်းကိုလည်းပြုလုပ်သည်။