PHP Object-Oriented Programming တွင် Magic Method သည်အထူးနည်းစနစ်အမျိုးအစားတစ်ခုဖြစ်သည်။ ဤနည်းလမ်းများမှတစ်ဆင့်ကျွန်ုပ်တို့သည်အတန်းပြန်ခြင်း, ပိုင်ဆိုင်မှုလက်လှမ်းမီမှုနှင့်နည်းလမ်းခေါ်ဆိုမှုကဲ့သို့သောအခြေအနေအမျိုးမျိုးတွင်တိကျသောအပြုအမူများကိုအကောင်အထည်ဖော်နိုင်သည်။ ဤနည်းလမ်းများသည်ယေဘုယျအားဖြင့် __Construct (__GET) စသည်တို့ကဲ့သို့နှစ်ဆနိဒါန်း (__) အဖြစ် double underscore (__) ကို pre နှင့်နောက်ဆက်အဖြစ်အသုံးပြုသည်။ ဤဆောင်းပါးသည်ဤဆောင်းပါးသည်ဤဆောင်းပါးသည်အများအားဖြင့်အသုံးများသောမှော်နည်းများကိုနက်ရှိုင်းစွာခွဲခြမ်းစိတ်ဖြာပါလိမ့်မည်။
__Construct () PHP တွင်အဓိကမှော်နည်းလမ်းဖြစ်သည်။ အရာဝတ်ထုကိုချက်ချင်းပြုလုပ်သောအခါအရာဝတ်ထု၏ပိုင်ဆိုင်မှုတန်ဖိုးများကိုစတင်ရန်မကြာခဏအသုံးပြုသောအခါ၎င်းသည်အလိုအလျောက်တောင်းဆိုသည်။ အရာဝတ်ထုတစ်ခု၏ဂုဏ်သတ္တိများကိုအရာဝတ်ထုတစ်ခု၏ဂုဏ်သတ္တိများကိုမည်သို့သတ်မှတ်မည်ကိုပြသသည့်ရိုးရှင်းသောဥပမာတစ်ခု -
class Person {
private $name;
private $age;
public function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
}
ဤဥပမာတွင်ဆောက်လုပ်ရေးသည် parameter နှစ်ခု ($ အမည်နှင့် $ age and and age) ကိုယူပြီးအရာဝတ်ထု၏ဂုဏ်သတ္တိများကိုသတ်မှတ်ပေးသည်။ လူတစ် ဦး အားအရာဝတ်ထုတစ်ခုကိုကျွန်ုပ်တို့ချက်ချင်းပြုလုပ်ပါက Constructor သည်အလိုအလျောက်ခေါ်ဆိုပြီးသက်ဆိုင်ရာ attribute ကိုတန်ဖိုးကိုသတ်မှတ်သည်။
__GET () နှင့် __set () နည်းလမ်းများသည်အရာဝတ်ထု၏ပုဂ္ဂလိကသို့မဟုတ်ကာကွယ်ထားသည့်အိမ်ခြံမြေများကို 0 ယ်ယူရန်အသုံးပြုသည်။ ဤနည်းလမ်းနှစ်မျိုးအားဖြင့် attribute များ၏ဝင်ရောက်ခွင့်ကိုထိန်းချုပ်နိုင်သည်။ ဥပမာမရှိပါကကျွန်ုပ်တို့သည်မတည်ရှိသည့်ပစ္စည်းဥစ်စာပိုင်ဆိုင်မှုကိုရယူရန်သို့မဟုတ်ပြုပြင်ရန်ကြိုးစားပါကဤနည်းစနစ်နှစ်ခုကိုချွင်းချက်ချရန်အသုံးပြုနိုင်သည်။
class Person {
private $name;
private $age;
public function __get($property) {
if (property_exists($this, $property)) {
return $this->$property;
} else {
throw new Exception("Property does not exist");
}
}
public function __set($property, $value) {
if (property_exists($this, $property)) {
$this->$property = $value;
} else {
throw new Exception("Property does not exist");
}
}
}
အထက်ဖော်ပြပါကုဒ်ပါဥပမာတွင်အရာဝတ်ထုတစ်ခုတွင်မရှိသေးသောပစ္စည်းဥစ်စာပိုင်ဆိုင်မှုကိုရယူခြင်းသို့မဟုတ်ပြုပြင်သည့်အခါချွင်းချက်ချထားသည်။
__CAST () နှင့် __CALLSTATITATITALCE) နည်းလမ်းများသည်မရှိသေးသောသို့မဟုတ်လက်လှမ်းမမှီသောခေါ်ဆိုမှုများကိုကိုင်တွယ်ရန်အသုံးပြုသည်။ undefined method ကိုကျွန်ုပ်တို့ခေါ်ဆိုသည့်အခါဤမှော်နည်းနှစ်မျိုးသည်အစပျိုးထားပြီးပြောင်းလဲခြင်းအပြုအမူကိုဖြစ်ပေါ်စေသည်။ အောက်ပါဥပမာသည်ဤနည်းလမ်းနှစ်ခုကိုမည်သို့အသုံးပြုရမည်ကိုပြသသည်။
class Person {
public function __call($method, $arguments) {
echo "Calling method $method with arguments " . implode(", ", $arguments);
}
public static function __callStatic($method, $arguments) {
echo "Calling static method $method with arguments " . implode(", ", $arguments);
}
}
undefined method ကိုကျွန်ုပ်တို့ခေါ်ဆိုသောအခါ PHP သည် __CAST () သို့မဟုတ် __CALLSTATITATICE () ကိုအလိုအလျောက်ခေါ်ဆိုလိမ့်မည်။
အထက်ဖော်ပြပါ အသုံးပြု. အသုံးအများဆုံးမှော်နည်းလမ်းများအပြင် PHP သည်ပိုမိုတိကျသောလိုအပ်ချက်များကိုကိုင်တွယ်ရန်အတွက်အခြားမှော်အတတ်နည်းစနစ်များကိုလည်းပေးသည်။ ဥပမာအားဖြင့်:
Magic Method များသည် PHP Object-Orient-Oriented ပရိုဂရမ်တွင်အလွန်အရေးကြီးသောအခန်းကဏ် play မှပါ 0 င်ပြီးတိကျသောအခြေအနေများတွင်လုပ်ဆောင်မှုများကိုအလိုအလျောက်လုပ်ဆောင်ရန်ကူညီနိုင်သည်။ ဤနည်းလမ်းများအားပြောင်းလွယ်ပြင်လွယ်စွာကျင့်သုံးခြင်းဖြင့်ကုဒ်၏ဖတ်နိုင်မှု, ထိန်းသိမ်းခြင်းနှင့်ပြောင်းလွယ်ပြင်လွယ်မှုကိုတိုးတက်စေနိုင်သည်။ အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုလုပ်ငန်းစဉ်များတွင်လိုအပ်ချက်များအရသင့်လျော်သောမှော်နည်းလမ်းကိုရွေးချယ်ခြင်းသည်ကုဒ်ဖွဲ့စည်းပုံကိုရှင်းရှင်းလင်းလင်းလုပ်နိုင်ရုံသာမကကုဒ်၏လုပ်ဆောင်နိုင်မှုကိုမြှင့်တင်ပေးနိုင်သည်။