PHP ရှိ OOP တွင် Trait အများအပြား

Class တစ်ခုတွင် Trait တစ်ခုထက် ပိုသုံးနိုင်ပါတယ်။ ဒီမှာပဲ ၎င်းတို့ရဲ့ အားသာချက်က မျိုးဆက်ပြန်ခြင်းထက် ပိုကောင်းတာကို ပြသနေပါတယ်။ Class ထဲမှာ အသုံးပြုချင်တဲ့ Trait တွေကို <use ဆိုတဲ့ keyword နောက်မှာ comma ခံပြီး ဖော်ပြနိုင်ပါတယ်။

ဥပမာကို ကြည့်ကြရအောင်။ Trait နှစ်ခု ရှိပါစို့။ ပထမတစ်ခု -

Helper1.php<?php
  trait Helper1
  {
    private $name;
    
    public function getName()
    {
      return $this->name;
    }
  }
?>

ဒုတိယတစ်ခု -

Helper2.php<?php
  trait Helper2
  {
    private $age;
    
    public function getAge()
    {
      return $this->age;
    }
  }
?>

ကျွန်ုပ်တို့ရဲ့ Class ထဲမှာ Trait တွေကို အသုံးပြုကြမယ် -

User.php<?php
  class User
  {
    use Helper1, Helper2; // trait တွေကို ချိတ်ဆက်တယ်
    
    public function __construct($name, $age)
    {
      $this->name = $name;
      $this->age = $age;
    }
  }
?>
Задание 1

Trait <Trait1, <Trait2 နှင့် <Trait3 ဆိုတဲ့ Trait သုံးခုကို ဖန်တီးပါ။ ပထမ Trait ထဲမှာ <1 ပြန်ပေးတဲ့ method <method1 ရှိပါစေ၊ ဒုတိယ Trait ထဲမှာ <2 ပြန်ပေးတဲ့ method <method2 ရှိပါစေ၊ တတိယ Trait ထဲမှာ <3 ပြန်ပေးတဲ့ method <method3 ရှိပါစေ။ ဒီ method တွေအားလုံးက private ဖြစ်ပါစေ။

Задание 2

ကျွန်ုပ်တို့ ဖန်တီးခဲ့တဲ့ Trait သုံးခုလုံးကို အသုံးပြုတဲ့ <Test class ကို ဖန်တီးပါ။ ဒီ class ထဲမှာ ချိတ်ဆက်ထားတဲ့ Trait တွေရဲ့ method တွေရဲ့ ရလဒ်တွေကို ပေါင်းပြီး ပြန်ပေးတဲ့ public method <getSum ကို ဖန်တီးပါ။