関数の概要
get_declared_classesは、現在のスクリプトで宣言されているすべてのクラス名を配列で取得するPHPの組み込み関数です。PHPの組み込みクラスやユーザー定義クラスを問わず、全クラス名をまとめて取得できるため、動的にクラス情報を扱う際に非常に便利です。
パラメータの説明
- なし:この関数はパラメータを受け取りません。
戻り値
すべての宣言済みクラス名を文字列の配列として返します。配列の各要素がクラス名(名前空間を含む場合はフルネーム)となっています。
使用例
基本的な使い方
<?php
class SampleClass {}
print_r(get_declared_classes());
?>
この例では、SampleClassを宣言した後に、現在宣言されているすべてのクラスリストを配列で出力します。標準のPHP組み込みクラスも含まれます。
ユーザー定義クラスのみを抽出する方法
<?php
class MyClass1 {}
class MyClass2 {}
$allClasses = get_declared_classes();
$userClasses = array_filter($allClasses, function($class) {
return strpos($class, 'MyClass') === 0;
});
print_r($userClasses);
?>
ここでは、名前に特定の文字列を含むユーザー定義クラスだけを抽出しています。実務で特定のクラス群を扱う際に活用できます。
宣言前後でのクラス一覧の違いを比較する
<?php
$before = get_declared_classes();
class NewClass {}
$after = get_declared_classes();
$newlyDeclared = array_diff($after, $before);
print_r($newlyDeclared);
?>
このコードでは、クラス宣言前後での差分を取り、新たに宣言されたクラスのみを取得しています。動的に読み込んだクラスの確認などに便利です。
関連する関数
get_declared_interfaces– 宣言済みインターフェイス一覧を取得get_declared_traits– 宣言済みトレイト一覧を取得class_exists– 指定したクラスが存在するかチェックinterface_exists– 指定したインターフェイスが存在するかチェック
まとめ
get_declared_classesはPHPで現在宣言されているすべてのクラスを簡単に取得できる便利な関数です。動的解析や自動ロード処理、デバッグ時のクラス確認に特に役立ちます。パラメータが不要なため手軽に使え、クラスの管理や検証の一助としておすすめの関数です。
