Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】ReflectionObject::isSubclassOf()メソッドの使い方

isSubclassOfメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

isSubclassOfメソッドは、PHPのReflectionObjectクラスに属し、指定されたオブジェクトが特定のクラスのサブクラスであるかどうかを判定するメソッドです。

ReflectionObjectクラスは、プログラムが実行されている最中に、オブジェクトの構造や性質(どのようなクラスに属しているか、どんなメソッドやプロパティを持っているかなど)を動的に調べるための機能を提供します。

このisSubclassOfメソッドは、特にオブジェクトの「継承関係」をチェックするために利用されます。オブジェクト指向プログラミングでは、あるクラスが別のクラスの機能を引き継いで拡張する「継承」という概念があります。また、インターフェースを「実装」することで、特定の振る舞いを保証することもできます。isSubclassOfメソッドは、対象となるReflectionObjectが表すオブジェクトのクラスが、引数として指定されたクラス名やインターフェース名を継承しているか、または実装しているかを動的に確認します。

具体的には、もし対象のオブジェクトのクラスが、指定されたクラスの子クラスであるか、あるいは指定されたインターフェースを実装していればtrueを返し、そうでなければfalseを返します。この機能は、プログラムの実行中にオブジェクトの型を柔軟に判断し、それに応じて異なる処理を実行したい場合や、特定の型のみを受け入れるような堅牢なコードを記述したい場合に非常に役立ちます。

構文(syntax)

1<?php
2
3class MyBaseClass {}
4class MySubClass extends MyBaseClass {}
5
6// MySubClass のインスタンスを作成
7$myObject = new MySubClass();
8
9// ReflectionObject を使ってオブジェクトをリフレクションする
10$reflector = new ReflectionObject($myObject);
11
12// myObject が MyBaseClass のサブクラスであるかを確認する
13// 結果は真偽値 (true または false) で返されます
14$isSubclass = $reflector->isSubclassOf(MyBaseClass::class);
15
16// この例では $isSubclass に true が格納されます

引数(parameters)

ReflectionClass|string $class

  • ReflectionClass|string $class: サブクラスかどうかを判定したいクラス、またはそのクラス名を表すReflectionClassオブジェクトまたは文字列

戻り値(return)

bool

指定されたクラスが、この ReflectionObject インスタンスが表すクラスのサブクラスであるかどうかを判定し、真偽値(bool)を返します。

関連コンテンツ

【PHP8.x】ReflectionObject::isSubclassOf()メソッドの使い方 | いっしー@Webエンジニア