Gebruik van Traits in Traits

Traits, soos klasse, kan ook ander traits gebruik. Kom ons kyk na 'n voorbeeld. Laat ons sê ons het die volgende trait met twee metodes:

Trait1.php<?php
  trait Trait1
  {
    private function method1()
    {
      return 1;
    }
    
    private function method2()
    {
      return 2;
    }
  }
?>

Laat ons sê ons het ook nog 'n ander trait:

Trait2.php<?php
  trait Trait2
  {
    private function method3()
    {
      return 3;
    }
  }
?>

Kom ons koppel trait Trait1 aan trait Trait2:

Trait3.php<?php
  trait Trait2
  {
    use Trait1; // gebruik die eerste trait
    
    private function method3()
    {
      return 3;
    }
  }
?>

Na so 'n koppeling sal dit blyk dat Trait2, behalwe sy eie metodes, ook die metodes van trait Trait1 sal hê. Kom ons toets dit: maak 'n klas Test, koppel trait Trait2 daaraan en maak seker dat in ons klas die metodes van beide die eerste trait en die tweede verskyn:

Test.php<?php
  class Test
  {
    use Trait2; // koppel die tweede trait
    
    public function __construct()
    {
      echo $this->method1(); // metode van die eerste trait
      echo $this->method2(); // metode van die eerste trait
      echo $this->method3(); // metode van die tweede trait
    }
  }
?>
Задание 1

Maak self dieselfde traits soos ek en koppel dit aan die klas Test. Maak in hierdie klas 'n metode getSum wat die som van die resultate van die gekoppelde traits se metodes teruggee.