【PHP8.x】ReflectionMethod::isStatic()メソッドの使い方
isStaticメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
isStaticメソッドは、指定されたメソッドが静的メソッドであるかどうかを判定するメソッドです。このメソッドは、PHPのReflection APIの一部であるReflectionMethodクラスに属しています。ReflectionMethodクラスは、PHPのプログラム実行中に、クラスに定義されているメソッドに関する詳細な情報を動的に取得するために利用されます。
isStaticメソッドを呼び出すと、対象のメソッドが「static」キーワードを使って定義されている場合にブール値のtrueを返します。一方、もし対象のメソッドが通常のインスタンスメソッドであり、「static」キーワードが付与されていない場合は、ブール値のfalseを返します。
この機能は、特にフレームワークやライブラリ開発において、実行時にクラスのメソッドの特性を調査し、それに応じて異なる処理を適用したい場合に非常に有用です。例えば、クラス内のメソッドを一覧表示し、どのメソッドがインスタンスを必要とせずに直接呼び出せるのかを判断する際に使用できます。システムエンジニアを目指す初心者の方にとって、静的メソッドとは、クラスのインスタンスを作成しなくても、「クラス名::メソッド名」という形式で直接呼び出すことができるメソッドであると理解しておくと良いでしょう。isStaticメソッドは、プログラムがそのような静的メソッドの性質を判断するために用いられます。
構文(syntax)
1<?php 2 3class MySampleClass 4{ 5 public static function aStaticMethod(): void 6 { 7 // このメソッドは静的です 8 } 9 10 public function anInstanceMethod(): void 11 { 12 // このメソッドは静的ではありません(インスタンスメソッドです) 13 } 14} 15 16$reflectionStaticMethod = new ReflectionMethod('MySampleClass', 'aStaticMethod'); 17$reflectionInstanceMethod = new ReflectionMethod('MySampleClass', 'anInstanceMethod'); 18 19// メソッドが静的であるかをチェックします。 20// 結果はbool型(trueまたはfalse)で返されます。 21var_dump($reflectionStaticMethod->isStatic()); 22var_dump($reflectionInstanceMethod->isStatic()); 23 24?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
bool
このメソッドは、対象のメソッドがstatic(静的)に宣言されているかどうかを示す真偽値(boolean)を返します。staticメソッドである場合はtrue、そうでない場合はfalseを返します。