Flere trekk i OOP i PHP

I en klasse kan du bruke ikke ett, men flere trekk. Det er her fordelen deres kommer til syne fremfor arv. Nødvendige trekk for bruk i klassen kan angis etter komma etter nøkkelordet use.

La oss se på et eksempel. La oss si at vi har to trekk. Det første:

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

Det andre:

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

La oss bruke våre trekk i en klasse:

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

Lag 3 trekk med navnene Trait1, Trait2 og Trait3. La det i det første trekket være en metode method1 som returnerer 1, i det andre trekket - en metode method2, som returnerer 2, og i det tredje trekket - en metode method3 som returnerer 3. La alle disse metodene være private.

Задание 2

Lag en klasse Test som bruker alle tre av trekkene vi har opprettet. Lag i denne klassen en offentlig metode getSum, som returnerer summen av resultatene fra metodene til de tilkoblede trekkene.