Più tratti in OOP in PHP

In una classe è possibile utilizzare non uno, ma diversi tratti. In questo si manifesta il loro vantaggio rispetto all'ereditarietà. I tratti necessari per l'utilizzo nella classe possono essere specificati separati da virgola dopo la parola chiave use.

Vediamo un esempio. Supponiamo di avere due tratti. Il primo:

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

Il secondo:

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

Utilizziamo i nostri tratti in una classe:

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

Create 3 tratti con i nomi Trait1, Trait2 e Trait3. Lasciate che nel primo tratto ci sia un metodo method1, che restituisce 1, nel secondo tratto - un metodo method2, che restituisce 2, e nel terzo tratto - un metodo method3, che restituisce 3. Lasciate che tutti questi metodi siano privati.

Задание 2

Create una classe Test, che utilizza tutti e tre i tratti da noi creati. Create in questa classe un metodo pubblico getSum, che restituisce la somma dei risultati dei metodi dei tratti collegati.