【PHP8.x】ReflectionClass::getInterfaceNames()メソッドの使い方
getInterfaceNamesメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
getInterfaceNamesメソッドは、PHPのReflectionClassクラスに属し、特定のクラスが実装しているインターフェースの名前を取得するメソッドです。
ReflectionClassクラスは、PHPのリフレクションAPIの一部として、プログラムの実行中にクラスの構造や情報を動的に検査する機能を提供します。このgetInterfaceNamesメソッドを使用すると、ReflectionClassオブジェクトが表すクラスが実装しているすべてのインターフェースの完全修飾名を、文字列の配列として取得できます。
インターフェースとは、クラスが満たすべき機能の約束事を定義するもので、複数のクラスが共通の振る舞いを持つことを保証する際に用いられます。このメソッドは、あるクラスが具体的にどのインターフェースの約束事を守っているかを、コード上で確認したい場合に非常に有用です。例えば、アプリケーションの拡張機能として、特定のインターフェースを実装したクラスのみを受け付けるような設計をする際などに、実行時にそのクラスが要件を満たしているかを確認するために活用できます。
メソッドが返す配列には、実装されている各インターフェースの名前が文字列として格納されます。もし、対象のクラスがどのインターフェースも実装していない場合には、空の配列が返されます。これにより、プログラムはクラスのインターフェース実装状況に応じて、柔軟な処理を行うことが可能になります。
構文(syntax)
1<?php 2 3interface FirstInterface {} 4interface SecondInterface {} 5interface ThirdInterface extends SecondInterface {} 6 7class MyClass implements FirstInterface, ThirdInterface {} 8 9$reflectionClass = new ReflectionClass(MyClass::class); 10$interfaceNames = $reflectionClass->getInterfaceNames(); 11 12print_r($interfaceNames); 13 14?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
array
このメソッドは、ReflectionClassオブジェクトが表すクラスが実装しているインターフェースの名前を配列として返します。