« class_parents
iterator_apply »

class_uses

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

class_uses — 指定したクラスが使っているトレイトを返す

説明

function class_uses(object|string $object_or_class, bool $autoload = true): array|false

この関数は、指定した object_or_class が使っているトレイトの名前を配列で返します。 しかし、親クラスで使っているトレイトは含まれません。

パラメータ

object_or_class

オブジェクト (クラスのインスタンス) あるいは文字列 (クラス名)。

autoload

まだロードされていない場合に オートロード するかどうか。

戻り値

成功した場合に配列、 指定されたクラスが存在しない場合に false を返します。

例

例1 class_uses() の例

<?php

trait foo { }
class bar {
  use foo;
}

print_r(class_uses(new bar));

print_r(class_uses('bar'));

spl_autoload_register();

// オートローディングを使い、'not_loaded' クラスを読み込みます
print_r(class_uses('not_loaded', true));

?>

上の例の出力は、 たとえば以下のようになります。

Array
(
    [foo] => foo
)
Array
(
    [foo] => foo
)
Array
(
    [trait_of_not_loaded] => trait_of_not_loaded
)

参考

関連キーワード:
uses   トレイト   loaded   autoload   trait   print   parents   ロード   オート   iterator   apply   インスタンス   成功   register   ローディング   参考   declared   traits   宣言
関連する関数・ページ:
function.trait-exists   function.get-declared-traits   function.class-parents   ref.spl   reflectionclass.gettraits   function.class-implements