PHP Development တွင်သီးသန့်အဖြစ်သတ်မှတ်ထားသောအတန်းသားကိုတိုက်ရိုက် 0 င်ရောက်ရန်ကြိုးစားသောအခါ, ဤပြ problem နာအတွက်အခြေခံကျသောအကြောင်းပြချက်သည် PHP ၏ Access Control Modism တွင်တည်ရှိသည်။ ပုဂ္ဂလိကအဖွဲ့ဝင်များသည်အတန်းအစား၏ပြည်တွင်း၌သာ 0 င်ရောက်နိုင်သည်။
PHP သည် 0 င်ရောက်ခွင့်ပြုနိုင်စွမ်းကိုထိန်းချုပ်ရန်လက်လှမ်းမီမှုပြင်ဆင်ခြင်း 3 ခုကိုထောက်ပံ့ပေးသည်။
ထို့ကြောင့်, ပုဂ္ဂလိကအဖွဲ့ 0 င်များကိုအတန်းပြင်ပမှတိုက်ရိုက်ရယူခြင်းသည်အမှားတစ်ခုပေါ်ပေါက်စေသည်။
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 ကိုသတ်မှတ်ရန်ကျွန်ုပ်တို့အသုံးပြုသည်။ ပုဂ္ဂလိကအဖွဲ့ဝင်များကိုတိုက်ရိုက်လက်လှမ်းမီမှုကြောင့်ဖြစ်ပေါ်လာသောအမှားများကိုရှောင်ရှားသည်။
အကယ်. သင်သည်ပုဂ္ဂလိကအသင်း 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 ကိုပိုမိုကျယ်ပြန့်စွာနှင့်ထိန်းသိမ်းခြင်းကိုလည်းပြုလုပ်သည်။