Více traitů v OOP v PHP

Ve třídě lze použít ne jeden, ale několik traitů. V tom se projevuje jejich výhoda oproti dědičnosti. Potřebné traity pro použití ve třídě lze uvést čárkou oddělené po klíčovém slově use.

Podívejme se na příklad. Předpokládejme, že máme dva traity. První:

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

Druhý:

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

Použijeme naše traity ve třídě:

User.php<?php
  class User
  {
    use Helper1, Helper2; // připojíme traity
    
    public function __construct($name, $age)
    {
      $this->name = $name;
      $this->age = $age;
    }
  }
?>
Задание 1

Vytvořte 3 traity s názvy Trait1, Trait2 a Trait3. Nechť v prvním traitu je metoda method1, vracející 1, v druhém traitu - metoda method2, vracející 2, a ve třetím traitu - metoda method3, vracející 3. Nechť všechny tyto metody jsou privátní.

Задание 2

Vytvořte třídu Test, používající všechny tři vytvořené traity. Vytvořte v této třídě veřejnou metodu getSum, vracející součet výsledků metod připojených traitů.