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

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

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

作成日: 更新日:

基本的な使い方

getTypeメソッドは、ReflectionParameterクラスに属し、関数やメソッドの引数(パラメータ)に指定された型ヒントに関する情報を取得するメソッドです。

PHPのReflection APIは、実行中のプログラムの構造を動的に調べ、その情報を利用するための強力な機能を提供します。ReflectionParameterクラスは、特定の関数やメソッドの引数一つ一つについて、その名前、デフォルト値、参照渡しであるかなどの詳細な情報を扱うために使用されます。getTypeメソッドは、このReflectionParameterオブジェクトが表す引数に対して、PHP 7以降で導入された型宣言(型ヒント)が設定されている場合に、その型情報を取得します。

具体的には、引数に「string $name」のように型が指定されている場合、getTypeメソッドは、その「string」という型に関する詳細な情報を持つReflectionTypeオブジェクトを返します。このReflectionTypeオブジェクトからは、型名が何か、それがPHPの組み込み型であるか、あるいはnullを許容する型であるか(例: ?string)といった情報を取得できます。もし引数に型ヒントが指定されていない場合は、nullが返されます。

このメソッドは、プログラムが実行時に自身のコード構造を解析し、動的な型チェックの実施、APIドキュメントの自動生成、フレームワークにおける依存性の解決(DIコンテナ)など、高度な処理を実装する際に非常に役立ちます。これにより、コードの堅牢性や保守性の向上に貢献します。

構文(syntax)

1<?php
2
3class MyService
4{
5    public function execute(string $name, int $id): void {}
6}
7
8$reflectionMethod = new ReflectionMethod(MyService::class, 'execute');
9$parameters = $reflectionMethod->getParameters();
10$reflectionParameter = $parameters[0]; // 最初のパラメータ (string $name)
11
12$reflectionType = $reflectionParameter->getType();

引数(parameters)

引数なし

引数はありません

戻り値(return)

?ReflectionType

ReflectionParameter::getType()メソッドは、引数の型宣言を表すReflectionTypeオブジェクト、または型宣言がない場合はnullを返します。

関連コンテンツ