PHP OOP에서 여러 트레이트 사용하기

클래스에서 하나가 아닌 여러 개의 트레이트를 사용할 수 있습니다. 이것이 상속보다 트레이트가 가지는 장점입니다. 클래스에서 사용할 트레이트들은 키워드 use 뒤에 쉼표로 구분하여 나열할 수 있습니다.

예제를 통해 살펴보겠습니다. 두 개의 트레이트가 있다고 가정해 봅시다. 첫 번째:

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

두 번째:

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

이제 우리 클래스에서 트레이트들을 사용해 보겠습니다:

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

Trait1, Trait2, Trait3라는 이름의 트레이트 3개를 만드세요. 첫 번째 트레이트에는 1을 반환하는 method1 메서드를, 두 번째 트레이트에는 2을 반환하는 method2 메서드를, 세 번째 트레이트에는 3을 반환하는 method3 메서드를 포함시키세요. 이 모든 메서드는 private으로 설정하세요.

Задание 2

방금 생성한 세 트레이트를 모두 사용하는 Test 클래스를 만드세요. 이 클래스에 public 메서드 getSum를 만들어, 연결된 트레이트들의 메서드 결과값의 합계를 반환하도록 하세요.