PHP OOP - လက္ခဏာရပ်များ
PHP - အင်္ဂါရပ်များကား အဘယ်နည်း။
PHP သည် တစ်ခုတည်းသော အမွေဆက်ခံခြင်းကိုသာ ပံ့ပိုးသည်- ကလေးအတန်းအစားသည် မိဘတစ်ဦးတည်းထံမှသာ အမွေဆက်ခံနိုင်သည်။
ဒီတော့ class တစ်ခုဟာ အပြုအမူများစွာကို အမွေဆက်ခံဖို့ လိုအပ်ရင် ဘယ်လိုလုပ်မလဲ။ OOP လက္ခဏာများသည် ဤပြဿနာကို ဖြေရှင်းပေးသည်။
စရိုက်လက္ခဏာများကို အတန်းများစွာတွင် အသုံးပြုနိုင်သည့် နည်းလမ်းများကို ကြေညာရန် အသုံးပြုသည်။ စရိုက်လက္ခဏာများသည် အတန်းများစွာတွင် အသုံးပြုနိုင်သည့် နည်းလမ်းများနှင့် စိတ္တဇနည်းလမ်းများ ရှိနိုင်ပြီး နည်းလမ်းများတွင် အသုံးပြုခွင့်မွမ်းမံမှု (အများပြည်သူ၊ သီးသန့် သို့မဟုတ် ကာကွယ်ထားသည်) ရှိနိုင်သည်။
trait
အင်္ဂါရပ်များကို အဓိကစကားလုံး ဖြင့် ကြေညာသည် -
အထားအသို
<?php
trait TraitName {
// some code...
}
?>
အတန်းတစ်ခုတွင် စရိုက်လက္ခဏာကို အသုံးပြုရန်၊
use
သော့ချက်စကားလုံးကို အသုံးပြုပါ-
အထားအသို
<?php
class MyClass {
use TraitName;
}
?>
ဥပမာတစ်ခုကိုကြည့်ရအောင်။
ဥပမာ
<?php
trait message1 {
public function msg1() {
echo "OOP is fun! ";
}
}
class Welcome {
use
message1;
}
$obj = new Welcome();
$obj->msg1();
?>
နမူနာရှင်းပြထားပါတယ်။
ဤတွင်၊ ကျွန်ုပ်တို့သည် အင်္ဂါရပ်တစ်ခုကို ကြေငြာသည်- သတင်းစကား ၁။ ထို့နောက် ကျွန်ုပ်တို့သည် အတန်းတစ်ခုကို ဖန်တီးသည်- ကြိုဆိုပါသည်။ class သည် trait ကိုအသုံးပြုပြီး trait ရှိ method အားလုံးကို class တွင် ရနိုင်မည်ဖြစ်ပါသည်။
အခြားအတန်းများတွင် msg1() လုပ်ဆောင်ချက်ကို အသုံးပြုရန် လိုအပ်ပါက၊ ထိုအတန်းများတွင် message1 စရိုက်ကို ရိုးရိုးရှင်းရှင်း အသုံးပြုပါ။ ၎င်းသည် ကုဒ်ပွားခြင်းကို လျှော့ချပေးသည်၊ အဘယ်ကြောင့်ဆိုသော် တူညီသောနည်းလမ်းကို ထပ်ခါထပ်ခါ ထပ်မံကြေငြာရန်မလိုအပ်သောကြောင့်ဖြစ်သည်။
PHP - လက္ခဏာများစွာကို အသုံးပြုခြင်း။
အခြားဥပမာကို ကြည့်ကြပါစို့။
ဥပမာ
<?php
trait message1 {
public function msg1() {
echo "OOP is fun! ";
}
}
trait message2 {
public function msg2()
{
echo "OOP reduces code duplication!";
}
}
class Welcome {
use message1;
}
class Welcome2 {
use message1, message2;
}
$obj = new Welcome();
$obj->msg1();
echo "<br>";
$obj2 =
new Welcome2();
$obj2->msg1();
$obj2->msg2();
?>
နမူနာရှင်းပြထားပါတယ်။
ဤတွင်၊ message1 နှင့် message2 တို့၏ စရိုက်နှစ်မျိုးကို ကြေငြာပါသည်။ ထို့နောက်၊ ကျွန်ုပ်တို့သည် ကြိုဆိုခြင်း နှင့် ကြိုဆိုခြင်း ၂ အတန်းနှစ်ခုကို ဖန်တီးသည်။ ပထမတန်းစား (Welcome) သည် message1 စရိုက်ကို အသုံးပြုပြီး ဒုတိယတန်းစား (Welcome2) သည် message1 နှင့် message2 စရိုက်များကို အသုံးပြုသည် (အင်္ဂါရပ်များစွာကို ကော်မာဖြင့် ပိုင်းခြားထားသည်)။