Več lastnosti (traits) v OOP v PHP

V razredu lahko uporabite ne eno, ampak več lastnosti (traits). V tem se kaže njihova prednost pred dedovanjem. Želene lastnosti (traits) za uporabo v razredu lahko navedete z vejico za ključno besedo use.

Poglejmo si na primeru. Recimo, da imamo dve lastnosti (traits). Prva:

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

Druga:

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

Uporabimo naši lastnosti (traits) v razredu:

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

Naredite 3 lastnosti (traits) z imeni Trait1, Trait2 in Trait3. Naj bo v prvi lastnosti (trait) metoda method1, ki vrne 1, v drugi lastnosti (trait) - metoda method2, ki vrne 2, in v tretji lastnosti (trait) - metoda method3, ki vrne 3. Naj bodo vse te metode zasebne.

Задание 2

Naredite razred Test, ki uporablja vse tri ustvarjene lastnosti (traits). Naredite v tem razredu javno metodo getSum, ki vrne vsoto rezultatov metod priključenih lastnosti (traits).