【PHP8.x】ReflectionObject::getInterfaceNames()メソッドの使い方
getInterfaceNamesメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
getInterfaceNamesメソッドは、PHP 8のReflectionObjectクラスに属し、特定のオブジェクトが実装しているインターフェースの名前を取得するために使用されるメソッドです。ReflectionObjectクラスは、プログラムの実行中にオブジェクトの構造や挙動に関する情報を取得できる「リフレクション」機能を提供します。
このgetInterfaceNamesメソッドを呼び出すと、リフレクションの対象となっているオブジェクトが実装しているすべてのインターフェースの完全修飾名が、文字列の配列として返されます。完全修飾名とは、名前空間を含んだインターフェースの正確な名前のことです。例えば、MyNamespace\MyInterfaceのような形式で取得できます。
このメソッドを利用することで、プログラムの実行中に、あるオブジェクトがどのような機能の契約(インターフェース)を遵守しているかを動的に確認することが可能になります。これにより、オブジェクトが特定の機能を提供しているかを判断したり、特定のインターフェースを実装しているオブジェクトに対してのみ特別な処理を行ったりするなど、プログラムの振る舞いを柔軟に制御できます。もし対象のオブジェクトがインターフェースを一つも実装していない場合は、空の配列が返されます。システムの状態に応じてオブジェクトの特性を検査する際に役立つでしょう。
構文(syntax)
1<?php 2 3interface ExampleInterfaceOne {} 4interface ExampleInterfaceTwo {} 5 6class MyReflectedClass implements ExampleInterfaceOne, ExampleInterfaceTwo { 7 // クラスの定義 8} 9 10$instance = new MyReflectedClass(); 11$reflector = new ReflectionObject($instance); 12 13// getInterfaceNames() メソッドは、オブジェクトが実装しているインターフェース名の配列を返します 14$interfaceNames = $reflector->getInterfaceNames(); 15 16print_r($interfaceNames); 17 18?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
string[]
このメソッドは、ReflectionObject が表すオブジェクトが実装しているインターフェースの名前を文字列の配列として返します。