PHP တွင်အစွမ်းထက်သောအင်္ဂါရပ်များစွာရှိပြီး built-in features များရှိသည်။ တစ်ခုမှာမှော်နည်းလမ်းဖြစ်သည်။ Magic နည်းလမ်းများသည်အထူးပြုလုပ်ထားသောလုပ်ဆောင်ချက်များကိုအတန်းထဲတွင်လုံးလုံးလျားလျားခေါ်ယူနိုင်သည့်အထူးအစီအစဉ်များဖြစ်သည်။ အတန်း၏လုပ်ဆောင်နိုင်စွမ်းကိုတိုးမြှင့်နိုင်သည်။ ဤဆောင်းပါးသည် PHP အတန်းများ၏လုပ်ဆောင်နိုင်မှုကိုမြှင့်တင်ရန်နှင့်လက်တွေ့ကျကျကျင့်ထုံးဥပမာများကိုပေးရန်မှော်နည်းများကိုမည်သို့မှန်ကန်စွာအသုံးပြုရမည်ကိုလေ့လာလိမ့်မည်။
ဆောက်လုပ်ရေး ( __construct
အထက်ဖော်ပြပါဥပမာတွင်မူကား ပိုင်ဆိုင်မှု ကိုစတင်ရန်အတွက် parameter $ နာမကို လက်ခံသည်။ အသုံးပြုသူအရာဝတ်ထုတစ်ခုကိုဖန်တီးသောအခါဆောက်လုပ်ရေးသည်လုံးလုံးလိတ်တိ ကို ဟုခေါ်သည်။ နောက်ဆုံးအနေဖြင့်ကျွန်ုပ်တို့သည် GetName Method ကိုခေါ်ဆိုခြင်းဖြင့် $ name attribute ၏တန်ဖိုးကိုရရှိသည်။
__Get မှတစ်ဆင့် __SE Magic Methods များမှတဆင့်ကျွန်ုပ်တို့သည်မတည်ရှိသည့်ဂုဏ်သတ္တိများကိုရယူပြီးပြုပြင်နိုင်သည်။
class User {
private $data = [];
public function __get($name) {
if (isset($this->data[$name])) {
return $this->data[$name];
} else {
return null;
}
}
public function __set($name, $value) {
$this->data[$name] = $value;
}
}
$user = new User();
$user->name = "Tom"; // ဂုဏ်သတ္တိများသတ်မှတ်
echo $user->name; // ထုတ်လုပ်ခြင်း "Tom"
အထက်ပါဥပမာတွင်ကျွန်ုပ်တို့သည်ဂုဏ်သတ္တိများနှင့်တန်ဖိုးများကိုသိုလှောင်ရန် $ ဒေတာ အမည်ရှိခင်းထားသောခင်းကျင်းမှုကိုအသုံးပြုသည်။ __Get နည်းလမ်းအားဖြင့်ကျွန်ုပ်တို့သည်သက်ဆိုင်ရာတန်ဖိုးကိုရရှိရန်မတည်ရှိသည့် attribute အမည်များကိုသုံးနိုင်သည်။ __s ဆိုတဲ့နည်းလမ်းကတော့မတည်ရှိ attribute names တွေကိုသုံးပြီးတန်ဖိုးများကိုသတ်မှတ်တဲ့အခါ attribute တွေနဲ့စံနှုန်းများကိုတက်ကြွစွာထည့်သွင်းခွင့်ပြုသည်။
Properties များကိုရယူခြင်းအပြင် __CASTALL နှင့် __callstatic မှော်နည်းလမ်းများမှတဆင့်ပြောင်းလဲနေသောနည်းလမ်းများကိုလည်းအကောင်အထည်ဖော်နိုင်သည်။
class User {
public function __call($name, $args) {
echo "Calling method: " . $name;
echo "Arguments: " . implode(", ", $args);
}
public static function __callStatic($name, $args) {
echo "Calling static method: " . $name;
echo "Arguments: " . implode(", ", $args);
}
}
$user = new User();
$user->sayHello("Tom", "Jerry");
User::sayHello("Tom", "Jerry");
အထက်ပါဥပမာသည် __CAST နှင့် __CallStatic နည်းစနစ်များအသုံးပြုမှုကိုပြသသည်။ Sayhello နည်းလမ်းကိုမသတ်မှတ်ခြင်းမပြုဘဲဤမှော်အတတ်နှစ်ခုကိုဤမှော်အတတ်နှစ်ခုကိုခေါ်ယူပြီး method name and parameter list များကို parameters များကိုလက်ခံသည်။ ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည်နည်းလမ်းမတည်ရှိသည့်အခါကျွန်ုပ်တို့သည်ပုံမှန်အတိုင်းလုပ်ဆောင်နိုင်ပြီးတုံ့ပြန်နိုင်သည်။
PHP မှ Magic Method များကိုမြှင့်တင်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်အတန်းထဲတွင်ပိုမိုပြောင်းလွယ်ပြင်လွယ်။ ပြောင်းလဲနေသောလုပ်ဆောင်မှုများကိုအကောင်အထည်ဖော်နိုင်သည်။ ၎င်းသည်ဆောက်လုပ်ရေးနှင့်ဖျက်ဆီးခြင်းဖျက်ဆီးခံရခြင်းသို့မဟုတ်မတည်ရှိသောဂုဏ်သတ္တိများနှင့်နည်းလမ်းများအသုံးပြုခြင်းသည်ဖြစ်စေ, ဤဆောင်းပါး၏ရှင်းပြချက်နှင့်နမူနာသည်စာဖတ်သူများအားပိုမိုကောင်းမွန်သောနားလည်မှုကိုပိုမိုနားလည်ပြီးအသုံးပြုနိုင်သည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။