Трейтлар ичида трейтлардан фойдаланиш

Трейтлар, синфлар каби, бошқа трейтлардан фойдаланиши мумкин. Келгила, мисолда кўрамиз. Бизда икки метода эга бўлган шундай трейт мавжуд дейлик:

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 трейтини улаймиз ва бизнинг синфимизда хар иккала трейтнинг методлари paydo бўлишини кўрамиз:

Test.php<?php
  class Test
  {
    use Trait2; // иккинчи трейтни улаймиз
    
    public function __construct()
    {
      echo $this->method1(); // биринчи трейтнинг метода
      echo $this->method2(); // биринчи трейтнинг метода
      echo $this->method3(); // иккинчи трейтнинг метода
    }
  }
?>
Задание 1

Мустақил равишда менникка ўхшаш трейтларни яратинг ва уларни Test синфига уланг. Ушбу синфда getSum методани яратинг, у уланган трейтлар методлари натижалари йиғиндисини қайтарсин.