PHP ရှိ OOP တွင် Traits များနှင့်အလုပ်လုပ်စဉ် နည်းလမ်းများ၏ ဦးစားပေးအဆင့်
အကယ်၍ အတန်းတစ်ခုနှင့် trait တစ်ခုတွင် အမည်တူနည်းလမ်းရှိပါက၊ အတန်း၏နည်းလမ်းသည် trait ၏နည်းလမ်းကို အစားထိုးသွားပါမည်။
<?php
trait TestTrait
{
// method ဟုအမည်ရသော နည်းလမ်း-
public function method()
{
return 'trait';
}
}
class TestClass
{
use TestTrait;
// method ဟူသော အလားတူနည်းလမ်း-
public function method()
{
return 'test';
}
}
$test = new TestClass;
echo $test->method(); // 'test' ကို ထုတ်ပြမည် - အတန်းကိုယ်တိုင်၏ နည်းလမ်းအလုပ်လုပ်သည်
?>
အကယ်၍ အတန်းကိုယ်တိုင်တွင် ထိုကဲ့သို့သော နည်းလမ်းမရှိပါက၊ သို့သော် trait ၏နည်းလမ်းများနှင့် မိဘအတန်း၏ နည်းလမ်းများအကြား အမည်ပဋိပက္ခရှိပါက၊ trait များ၏ နည်းလမ်းများသည် ဦးစားပေးအခွင့်အရေးရှိသည်။
<?php
trait TestTrait
{
// method ဟုအမည်ရသော နည်းလမ်း-
public function method()
{
return 'trait';
}
}
// မိဘအတန်း-
class ParentClass
{
// method ဟုအမည်ရသော နည်းလမ်း-
public function method()
{
return 'parent';
}
}
// အတန်းသည် မိဘအတန်းမှ method method ကို အမွေဆက်ခံသည်-
class TestClass extends ParentClass
{
use TestTrait;
}
$test = new TestClass;
echo $test->method(); // 'trait' ကို ထုတ်ပြမည်၊ အဘယ့်ကြောင့်ဆိုသော် trait သည် ဦးစားပေးအခွင့်အရေးရှိသည်
?>