Функцыя 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'
]

Глядзіце таксама

  • функцыю class_parents,
    якая вяртае бацькоўскія класы
  • функцыю class_implements,
    якая вяртае інтэрфейсы класа