Traitide kasutamine traitides

Traitid, sarnaselt klassidele, võivad samuti kasutada teisi traite. Vaatame näidet. Oletame, et meil on selline trait kahe meetodiga:

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

Oletame, et meil on ka veel üks trait:

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

Ühendame traiti Trait2 trait Trait1:

Trait3.php<?php
  trait Trait2
  {
    use Trait1; // kasutame esimest traiti
    
    private function method3()
    {
      return 3;
    }
  }
?>

Pärast sellist ühendamist saab Trait2 peale oma meetodite veel ka trait-i Trait1 meetodid. Kontrollime seda: teeme klassi Test, ühendame sellele traiti Trait2 ja veendume, et meie klassis ilmuvad nii esimese traiti kui ka teise meetodid:

Test.php<?php
  class Test
  {
    use Trait2; // ühendame teise traiti
    
    public function __construct()
    {
      echo $this->method1(); // esimese traiti meetod
      echo $this->method2(); // esimese traiti meetod
      echo $this->method3(); // teise traiti meetod
    }
  }
?>
Задание 1

Tehke iseseisvalt samasugused traitid, nagu minul ja ühendage need klassiga Test. Tehke selles klassis meetod getSum, mis tagab ühendatud traitide meetodite tulemuste summa.