Gebruik van traits in traits

Traits kunnen, net als klassen, ook andere traits gebruiken. Laten we een voorbeeld bekijken. Stel dat we de volgende trait hebben met twee methoden:

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

Stel dat we ook nog een andere trait hebben:

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

Laten we trait Trait1 verbinden met trait Trait2:

Trait3.php<?php
  trait Trait2
  {
    use Trait1; // gebruik de eerste trait
    
    private function method3()
    {
      return 3;
    }
  }
?>

Na een dergelijke verbinding zal Trait2, naast zijn eigen methoden, ook de methoden van trait Trait1 hebben. Laten we dit controleren: we maken een klasse Test, verbinden de trait Trait2 ermee en zorgen dat in onze klasse zowel de methoden van de eerste trait, als de tweede verschijnen:

Test.php<?php
  class Test
  {
    use Trait2; // verbind de tweede trait
    
    public function __construct()
    {
      echo $this->method1(); // methode van de eerste trait
      echo $this->method2(); // methode van de eerste trait
      echo $this->method3(); // methode van de tweede trait
    }
  }
?>
Задание 1

Maak zelf dezelfde traits, als ik en verbind ze met de klasse Test. Maak in deze klasse een methode getSum, die de som van de resultaten van de methoden van de verbonden traits retourneert.