Trait'lerin Trait'lerde Kullanımı

Trait'ler, sınıflara benzer şekilde, başka trait'leri de kullanabilir. Bir örnek üzerinden gidelim. Şu iki metoda sahip bir trait'imiz olduğunu varsayalım:

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

Ayrıca başka bir trait'imiz daha olduğunu varsayalım:

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

Trait2 trait'ine Trait1 trait'ini bağlayalım:

Trait3.php<?php
  trait Trait2
  {
    use Trait1; // ilk trait'i kullanıyoruz
    
    private function method3()
    {
      return 3;
    }
  }
?>

Bu bağlamadan sonra, Trait2 trait'inin kendi metodlarının yanı sıra Trait1 trait'inin metodlarına da sahip olacağı sonucu çıkar. Bunu kontrol edelim: Test sınıfını oluşturalım, Trait2 trait'ini bu sınıfa bağlayalım ve sınıfımızda hem birinci trait'in hem de ikinci trait'in metodlarının ortaya çıktığından emin olalım:

Test.php<?php
  class Test
  {
    use Trait2; // ikinci trait'i bağlıyoruz
    
    public function __construct()
    {
      echo $this->method1(); // birinci trait'in metodu
      echo $this->method2(); // birinci trait'in metodu
      echo $this->method3(); // ikinci trait'in metodu
    }
  }
?>
Задание 1

Benimkiyle aynı trait'leri kendiniz yapın ve bunları Test sınıfına bağlayın. Bu sınıfta, bağlanan trait'lerin metodlarının sonuçlarının toplamını döndüren getSum metodunu yapın.