関数の概要
PHPの get_declared_traits 関数は、現在のスクリプトで宣言されているすべてのトレイト名の一覧を取得するために使われます。トレイトはクラスに共通のメソッド群を再利用するための仕組みで、複数のクラスで共有できるコードの塊として機能します。この関数を使うことでどのトレイトが利用可能かを簡単に確認できます。
パラメータの説明
- パラメータなし – この関数は引数をとりません。
戻り値
返り値は配列で、現在スクリプトに宣言されているトレイト名(文字列)がすべて格納されています。トレイトが1つも宣言されていなければ空の配列を返します。
使用例
基本的な使い方
<?php
// トレイトを宣言
trait ExampleTrait {
public function sayHello() {
echo "Hello from ExampleTrait";
}
}
// 宣言されたトレイト一覧を取得
$traits = get_declared_traits();
print_r($traits);
?>
上記では1つのトレイト(ExampleTrait)を宣言し、get_declared_traitsで現在のスクリプトにあるトレイト名を取得して表示しています。
クラスでトレイトを使った例
<?php
trait Logger {
public function log($msg) {
echo "[LOG]: " . $msg . "n";
}
}
trait Formatter {
public function format($text) {
return strtoupper($text);
}
}
class User {
use Logger, Formatter;
}
$traits = get_declared_traits();
var_dump($traits);
?>
ここでは2つのトレイト(LoggerとFormatter)を宣言し、それをクラスUserで利用しています。get_declared_traitsは宣言済みトレイトの全てを配列で返します。
標準トレイトを含めたトレイト一覧の確認
<?php
// 先にトレイト宣言なしで呼び出す例
var_dump(get_declared_traits());
trait MyTrait {}
var_dump(get_declared_traits());
?>
トレイトを宣言する前と後で get_declared_traits の結果がどう変わるか見る例です。最初は空配列に近い状態ですが、トレイトを宣言すると配列に追加されていきます。
関連する関数
get_declared_classes()– 宣言済みクラス名の一覧を取得get_declared_interfaces()– 宣言済みインターフェース名の一覧を取得class_uses()– 特定クラスに使われているトレイトを取得trait_exists()– トレイトの存在チェックを行う
まとめ
get_declared_traits は今スクリプト内で利用可能なトレイトを一覧で確認できる便利な関数です。トレイトによるコードの再利用が増える中、どんなトレイトが宣言されているか把握したい場合に役立ちます。パラメータ不要でシンプルに宣言済みトレイトを配列で取得できるため、初心者から実務者まで広く使いやすい関数です。
