関数 class_uses

関数 class_uses は、指定されたクラスまたはオブジェクトが使用するトレイト名の配列を返します。この関数は、必須パラメータとしてクラスまたはオブジェクトを1つ、オプションパラメータとして親クラスのトレイトを含めるかどうかを指定する真偽値を1つ取ります。

構文

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'
]

関連項目