트레이트 안에서 트레이트 사용하기

트레이트는 클래스와 마찬가지로 다른 트레이트를 사용할 수 있습니다. 예제를 통해 살펴보겠습니다. 다음과 같이 두 개의 메서드를 가진 트레이트가 있다고 가정해 보겠습니다:

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

또 다른 트레이트가 있다고 가정합니다:

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

트레이트 Trait2에 트레이트 Trait1를 연결해 보겠습니다:

Trait3.php<?php
  trait Trait2
  {
    use Trait1; // 첫 번째 트레이트 사용
    
    private function method3()
    {
      return 3;
    }
  }
?>

이렇게 연결한 후에는 Trait2가 자체 메서드 외에도 트레이트 Trait1의 메서드들을 가지게 됩니다. 이를 확인해 보겠습니다: Test 클래스를 만들고, 여기에 트레이트 Trait2를 연결한 후, 우리 클래스에 첫 번째 트레이트와 두 번째 트레이트의 메서드가 모두 생성되는지 확인하겠습니다:

Test.php<?php
  class Test
  {
    use Trait2; // 두 번째 트레이트 연결
    
    public function __construct()
    {
      echo $this->method1(); // 첫 번째 트레이트 메서드
      echo $this->method2(); // 첫 번째 트레이트 메서드
      echo $this->method3(); // 두 번째 트레이트 메서드
    }
  }
?>
Задание 1

직접 저와 동일한 트레이트를 만들고, Test 클래스에 연결해 보세요. 이 클래스에 연결된 트레이트들의 메서드 결과들의 합을 반환하는 getSum 메서드를 만드세요.