PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင်ခွင့်ပြုချက်ထိန်းချုပ်မှုသည်ပရိုဂရမ်လုံခြုံရေးနှင့် Modular Design ကိုအကောင်အထည်ဖော်ရန်အဓိကယန္တရားတစ်ခုဖြစ်သည်။ ခွင့်ပြုချက်ကိုပြုပြင်မွမ်းမံခြင်းများကိုအသုံးပြုခြင်းအားဖြင့်သင်တန်းသားများကိုထိရောက်စွာကန့်သတ်ချုပ်ချယ်ထားခြင်း, ကုဒ်အလွဲသုံးစားမှုကိုရှောင်ရှားနိုင်သည်။
PHP သည် အများပြည်သူ , အကာအကွယ်ပေးထားသော ပုဂ္ဂလိက , နောက်ဆုံး နှင့် စိတ်တဇကို အများပြည်သူ, အောက်ပါတို့ကိုသီးခြားစီရှင်းပြပြီးနမူနာကုဒ်နှင့်ပေါင်းစပ်။ ရှင်းပြလိမ့်မည်။
အများပြည်သူကို အများပြည်သူ 0 င်များကြေငြာရန်အသုံးပြုသည်။ ၎င်းသည် default access control method တစ်ခုဖြစ်ပြီးကျယ်ပြန့်စွာခေါ်ရန်လိုအပ်သောနည်းလမ်းများသို့မဟုတ်ဂုဏ်သတ္တိများအတွက်သင့်တော်သည်။
class Person {
public $name;
public function sayHello() {
echo 'Hello, my name is ' . $this->name;
}
}
$person = new Person();
$person->name = 'Tom';
$person->sayHello();
အကာအကွယ်ပေးထားသော ကာကွယ်ထားသည့်အဖွဲ့ဝင်များကိုသတ်မှတ်ရန်သို့မဟုတ်အမွေဆက်ခံခွဲများကိုသာ 0 င်ရောက်နိုင်ရန်သို့မဟုတ်အမွေဆက်ခံနိုင်သည့်ခွဲစိတ်မှုများကိုသာရယူနိုင်သည့်အတွက်အသုံးပြုသည်။
class Animal {
protected $name;
protected function getName() {
return $this->name;
}
}
class Cat extends Animal {
public function setName($name) {
$this->name = $name;
}
public function sayHello() {
echo 'Hello, I am ' . $this->getName();
}
}
$cat = new Cat();
$cat->setName('Tom');
$cat->sayHello();
ပုဂ္ဂလိက ထုတ်ဝေသောအဖွဲ့ဝင်များကိုလက်ရှိလူတန်းစားတွင်သာအသုံးပြုနိုင်ပြီး subclasses မှ ဝင်ရောက်. မရပါ။ ၎င်းသည်အတန်း၏အတွင်းပိုင်းအကောင်အထည်ဖော်မှုအသေးစိတ်တွင်မကြာခဏအသုံးပြုသောအတင်းကျပ်ဆုံး Access control method ဖြစ်သည်။
class Person {
private $name;
private function getName() {
return $this->name;
}
public function sayHello() {
echo 'Hello, my name is ' . $this->getName();
}
}
$person = new Person();
$person->name = 'Tom'; // ဒီမှာအမှားတစ်ခုသတင်းပို့လိမ့်မည်
$person->sayHello();
နောက်ဆုံး အတန်းများကိုအမွေဆက်ခံခြင်းသို့မဟုတ်နည်းစနစ်များကိုအစားထိုးခြင်းမှကာကွယ်ရန်အသုံးပြုသည်။ နောက်ဆုံးမှ ကြေငြာထားသောနည်းလမ်းများကို subclasses တွင်မလွှမ်းမိုးနိုင်ပါ။ ပြုပြင်မွမ်းမံရန်ဆန္ဒရှိသည့်အဓိကယုတ္တိဗေဒအတွက်သင့်တော်သည်။
class Animal {
final public function eat() {
echo 'I am eating';
}
}
class Cat extends Animal {
public function eat() { // ဒီမှာအမှားတစ်ခုသတင်းပို့လိမ့်မည်
echo 'I am not eating';
}
}
$cat = new Cat();
$cat->eat();
စိတ်တဇသည် စိတ်တဇအတန်းများနှင့်စိတ်တဇနည်းစနစ်များကိုသတ်မှတ်ရန်အသုံးပြုသည်။ စိတ်တဇအတန်းများကိုချက်ချင်းမလုပ်နိုင်ပါ, ၎င်းတို့ကိုခွဲခြမ်းစိတ်ဖြာခြင်းဖြင့်အမွေဆက်ခံရမည်။
abstract class Animal {
abstract public function eat();
}
class Cat extends Animal {
public function eat() {
echo 'I am eating fish';
}
}
$cat = new Cat();
$cat->eat();
PHP Access Control Movifiers များကို အသုံးပြု. ဆင်ခြင်ခြင်းနှင့်ကျိုးကြောင်းဆီလျော်သည်အားသာချက်များ, လုံခြုံသောနှင့်ကျယ်ပြန့်သောကုဒ်များရေးသားခြင်းအတွက်အခြေခံဖြစ်သည်။ တစ်ခုချင်းစီကိုပြုပြင်မွမ်းမံအတွက်၎င်း၏ကိုယ်ပိုင်ရည်ရွယ်ချက်ရှိပါတယ်။ အတန်းများနှင့်နည်းလမ်းများကိုရေးသည့်အခါ developer များက code ၏ encapsulation နှင့် security ကိုမြှင့်တင်ရန်အမှန်တကယ်လိုအပ်ချက်များနှင့်အညီ developer များကသင့်လျော်သော access access ကိုရွေးချယ်သင့်သည်။