PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင်အခြေအနေများစွာတွင်ကျွန်ုပ်တို့သည်ပြောင်းလဲမှုများကိုအောင်မြင်ရန်အတန်းအမည်များကိုကိုယ်စားပြုရန် variable များကိုသုံးရန်မျှော်လင့်ပါသည်။ သို့သော်တစ်ခါတစ်ရံတွင်အမှားတစ်ခုဖြစ်သောအမှားတစ်ခုဖြစ်ပြီး variable ကို class name တစ်ခုအနေဖြင့်မဖြေရှင်းနိုင်ပါ။ ဤဆောင်းပါးသည်ဘုံပြ problems နာများနှင့်ဖြေရှင်းနည်းများကိုအသေးစိတ်ဖော်ပြပါမည်။
Class အမည်များကိုကိုယ်စားပြုရန် Variables ကို အသုံးပြု. အရာဝတ်ထုများကိုအခြေအနေများအပေါ် အခြေခံ. ဖန်တီးနိုင်သည်။ ဥပမာအသုံးပြုသူအမျိုးအစားအပေါ် အခြေခံ. ကွဲပြားသောထုတ်လုပ်မှုသင်တန်းများကိုရွေးချယ်ပါ။
class userhandler {
// အသုံးပြုသူအပြောင်းအလဲနဲ့ယုတ္တိဗေဒ}
Class Adminhandler {
// အုပ်ချုပ်ရေးမှူးအပြောင်းအလဲနဲ့ယုတ္တိဗေဒ}
$ usertype = 'အသုံးပြုသူ', // အသုံးပြုသူအသင်းကို $ Classname = $ Usertype = $ usertype အရပြောင်းလဲနိုင်သည်။ 'handler'; // အသုံးပြုသူအမျိုးအစားအလိုက်အတန်းအစားအမည်ကို splice $ handler = $ classname (); // Class $ handler-> လက်ကိုင် () ၏ဥပမာတစ်ခုဖန်တီးပါ။ // အပြောင်းအလဲနဲ့နည်းလမ်းကိုခေါ်ပါသော့ချက်သည် variable variable ကို $ classname ကို အော်ပရေတာ အသစ် သို့ဖြတ်သန်းခြင်းဖြင့်အရာဝတ်ထုများကိုဖန်တီးရန်ဖြစ်သည်။ PHP သည် variable class name ကိုမဖြေရှင်းနိုင်ပါက, အောက်ပါအမှားများဖြစ်ပေါ်နိုင်သည်။
Fatal Error: uncraff အမှား - အတန်းအစား 'UserHandler' မတွေ့ပါ
အစောပိုင်း PHP ၏အစောပိုင်းမူကွဲများအတွက် (5.3 ထက်နည်း) အတွက် variable class names များကိုတိုက်ရိုက်မသုံးနိုင်ပါ, string concatenation မှတစ်ဆင့်အောင်မြင်နိုင်သည်။
$ classname = $ usertype ။ 'handler'; // splice အတန်းအစားအမည် $ handler = $ classname (); // ဥပမာအားဖြင့် $ handler-> လက်ကိုင် (); // ခေါ်ဆိုမှုနည်းလမ်း
ဤချဉ်းကပ်မှုသည် PHP သည်အတန်းအစားအမည်ကိုမှန်ကန်စွာဖြေရှင်းနိုင်ရန်နှင့်ဥပမာအားဖြင့်ဖန်တီးသည်။
PHP 5.3 နှင့်အထက်တွင်သင်သည် variable class name syntax ကိုသုံးနိုင်သည်။
$ classname = $ usertype ။ 'handler'; // splice အတန်းအစားအမည် $ handler = $ classname (); // ဥပမာအားဖြင့် $ handler-> လက်ကိုင် (); // ခေါ်ဆိုမှုနည်းလမ်း
Mutable အတန်းအစားအမည်များသည် code ကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်ရှိစေရန်နှင့်တက်ကြွစွာချက်ချင်းထောက်ပံ့ပါ။
အကယ်. အတန်းသည် namespace တစ်ခုတွင်ရှိပါကအရည်အချင်းပြည့်မီသောအတန်းအစားအမည်ကိုသုံးပါ။
$ usertype = 'အသုံးပြုသူ', // အသုံးပြုသူအမျိုးအစား $ ClassName = '\ MYApp \' ။ $ usertype ။ 'handler'; // အပြည့်အဝအရည်အချင်းပြည့်ဝသောအတန်းအစားအမည် $ handler = $ classname (); // ဥပမာအားဖြင့် $ handler-> လက်ကိုင် (); // ခေါ်ဆိုမှုနည်းလမ်း
Namespace ရှေ့ဆက်ကိုထည့်ခြင်းဖြင့် PHP သည်အတန်းအမည်များကိုမှန်ကန်စွာဖြေရှင်းနိုင်သည်။
PHP သည် variable ကို class name တစ်ခုအနေဖြင့်ခွဲထုတ်ခြင်းမပြုနိုင်ပါက, အောက်ဖော်ပြပါအခြေအနေများအရအောက်ပါနည်းလမ်းများကိုရွေးချယ်နိုင်သည်။
string concatenation ကိုသုံးပါ, အစောပိုင်း PHP ဗားရှင်းများအတွက်သင့်လျော်သော, PHP 5.3 နှင့်အထက်သင့်လျော်သော variable class အမည်များကိုသုံးပါ။ namespace အတွက်အတန်းများအတွက်သင့်လျော်သောအရည်အချင်းပြည့်မီသောအတန်းအစားအမည်များကိုသုံးပါ။
ဤနည်းလမ်းများကိုသင့်တော်စွာအသုံးပြုခြင်းသည် dynamic classiation ကိုအောင်မြင်ရန်နှင့် PHP code ၏ပြောင်းလွယ်ပြင်လွယ်မှုနှင့်ထိန်းသိမ်းခြင်းကိုတိုးတက်စေနိုင်သည်။