Տրեյթների օգտագործումը տրեյթներում

Տրեյթները, նման դասերին, կարող են օգտագործել նաև այլ տրեյթներ: Եկեք նայենք օրինակով: Ենթադրենք ունենք այսպիսի տրեյթ երկու մեթոդներով:

Trait1.php<?php
  trait Trait1
  {
    private function method1()
    {
      return 1;
    }
    
    private function method2()
    {
      return 2;
    }
  }
?>

Ենթադրենք ունենք նաև մեկ այլ տրեյթ.

Trait2.php<?php
  trait Trait2
  {
    private function method3()
    {
      return 3;
    }
  }
?>

Եկեք Trait2 տրեյթին միացնենք Trait1 տրեյթը.

Trait3.php<?php
  trait Trait2
  {
    use Trait1; // օգտագործում ենք առաջին տրեյթը
    
    private function method3()
    {
      return 3;
    }
  }
?>

Նման միացումից հետո կստացվի, որ Trait2-ը իր մեթոդներից բացի կունենա նաև Trait1 տրեյթի մեթոդները: Եկեք ստուգենք դա. ստեղծենք Test դասը, միացնենք դրան Trait2 տրեյթը և համոզվենք, որ մեր դասում կհայտնվեն և՛ առաջին տրեյթի, և՛ երկրորդ տրեյթի մեթոդները.

Test.php<?php
  class Test
  {
    use Trait2; // միացնում ենք երկրորդ տրեյթը
    
    public function __construct()
    {
      echo $this->method1(); // առաջին տրեյթի մեթոդը
      echo $this->method2(); // առաջին տրեյթի մեթոդը
      echo $this->method3(); // երկրորդ տրեյթի մեթոդը
    }
  }
?>
Задание 1

Ինքնուրույն պատրաստեք նույն տրեյթները, ինչպես իմ մոտ և միացրեք դրանք Test դասին: Ստեղծեք այս դասում getSum մեթոդը, որը վերադարձնում է միացված տրեյթների մեթոդների արդյունքների գումարը: