class_uses 함수

함수 class_uses는 지정된 클래스나 객체가 사용하는 트레이트들의 이름으로 이루어진 배열을 반환합니다. 이 함수는 하나의 필수 매개변수(클래스 또는 객체)와 하나의 선택적 매개변수(부모 클래스의 트레이트를 포함할지 여부를 결정)를 받습니다.

문법

phpclass_uses(object|string $class, bool $autoload = true): array

예제

여러 트레이트와 그것들을 사용하는 클래스를 만들어 보겠습니다:

php<?php
  trait TraitA {
    public function methodA() {}
  }
  
  trait TraitB {
    public function methodB() {}
  }
  
  class MyClass {
    use TraitA, TraitB;
  }
  
  $res = class_uses('MyClass');
  print_r($res);
?>

코드 실행 결과:

php[
  'TraitA' => 'TraitA',
  'TraitB' => 'TraitB'
]

예제

객체에 대한 트레이트를 확인해 보겠습니다:

php<?php
  $obj = new MyClass();
  $res = class_uses($obj);
  print_r($res);
?>

코드 실행 결과:

php[
  'TraitA' => 'TraitA',
  'TraitB' => 'TraitB'
]

예제

상속과의 동작:

php<?php
  class ParentClass {
    use TraitA;
  }
  
  class ChildClass extends ParentClass {
    use TraitB;
  }
  
  $res = class_uses('ChildClass');
  print_r($res);
?>

코드 실행 결과:

php[
  'TraitB' => 'TraitB'
]

함께 보기