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

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

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

作成日: 更新日:

基本的な使い方

isUserDefinedメソッドは、PHPのReflectionClassオブジェクトが表すクラスが、開発者によって記述された「ユーザー定義クラス」であるか、それともPHPの実行環境に組み込まれている「内部クラス」であるかを判定するメソッドです。

ここでいう「ユーザー定義クラス」とは、皆さんがPHPのスクリプトコードの中で直接記述し、定義したクラスのことを指します。例えば、独自に作成したビジネスロジックやデータ構造を表現するためにclass MyDataProcessor { /* ... */ }のように定義するクラスがこれに該当します。

一方、「内部クラス」とは、PHPのエンジン自体に標準で組み込まれているクラスや、PHPの拡張モジュール(エクステンション)によって提供されるクラスを指します。例えば、日付や時刻を扱うDateTimeクラス、例外処理で使うExceptionクラス、あるいはデータベース接続を管理するPDO関連のクラスなどが内部クラスに該当します。

isUserDefinedメソッドは、対象となるReflectionClassオブジェクトがユーザー定義クラスを表している場合にはブール値のtrueを返し、内部クラスを表している場合にはfalseを返します。

このメソッドは、プログラムの実行中に、特定のクラスが開発者自身が作ったものなのか、それともPHPに元々備わっている標準機能の一部なのかを動的に識別したい場合に非常に有用です。例えば、ユーザー定義クラスに対してのみ特定の自動処理を実行したり、あるいは内部クラスとは異なるログ記録のメカニズムを適用したりするなど、クラスの種類に応じて処理を分岐させる際に役立ちます。このメソッドは、PHPのリフレクション機能を通じて、実行時のクラスに関する詳細な情報取得をサポートする重要な要素の一つです。

構文(syntax)

1<?php
2
3class MyClass {}
4
5$reflectionClass = new ReflectionClass('MyClass');
6var_dump($reflectionClass->isUserDefined());
7
8$reflectionBuiltinClass = new ReflectionClass('stdClass');
9var_dump($reflectionBuiltinClass->isUserDefined());
10
11?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

bool

このメソッドは、クラスがユーザー定義されたものか(true)、それともPHPの組み込みクラスか(false)を返します。

関連コンテンツ