Viacero traitov v OOP v PHP

V triede je možné použiť nie jeden, ale niekoľko traitov. V tomto sa prejavuje ich výhoda oproti dedičnosti. Potrebné traity na použitie v triede je možné uviesť oddelené čiarkou po kľúčovom slove use.

Pozrime sa na príklad. Predpokladajme, že máme dva traity. Prvý:

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žime naše traity v triede:

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

Vytvorte 3 traity s názvami Trait1, Trait2 a Trait3. Nech v prvom traite je metóda method1, vracajúca 1, v druhom traite - metóda method2, vracajúca 2, a v treťom traite - metóda method3, vracajúca 3. Nech sú všetky tieto metódy súkromné.

Задание 2

Vytvorte triedu Test, ktorá používa všetky tri nami vytvorené traity. Vytvorte v tejto triede verejnú metódu getSum, ktorá vráti súčet výsledkov metód pripojených traitov.