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

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

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

作成日: 更新日:

基本的な使い方

isPromotedメソッドは、PHPのクラスプロパティが「プロパティプロモーション」という機能を使って宣言されたものであるかを確認するメソッドです。

このメソッドは、クラスのプロパティに関する詳細な情報を取得するためのReflectionPropertyクラスに属しています。ReflectionPropertyクラスは、実行時にプログラム自身の構造(クラス、メソッド、プロパティなど)を検査できる「リフレクション」という仕組みを提供するクラスの一つです。

PHP 8で導入されたプロパティプロモーションは、コンストラクタの引数として直接プロパティを宣言し、同時に初期化を可能にする簡潔な構文です。これにより、コードの記述量を減らし、クラス定義の可読性を向上させることが主な目的とされています。

isPromotedメソッドは、検査対象のプロパティがこのプロパティプロモーションの構文を用いて定義されたものである場合にtrue(真)を返し、通常の構文で定義されたプロパティである場合にはfalse(偽)を返します。この機能は、特定のプロパティがどのように宣言されているかをプログラム的に判別する必要がある場合に非常に有用です。例えば、PHPのコードを解析するツールや、プログラムが実行時に動的に自身の構造を操作する際に、プロパティの定義方式に基づいて異なる処理を適用するために使用されます。

構文(syntax)

1<?php
2
3class Product
4{
5    public function __construct(
6        public string $name,
7        private float $price
8    ) {
9    }
10
11    public string $description;
12}
13
14$reflectionPropertyPromoted = new ReflectionProperty(Product::class, 'name');
15$isPromoted = $reflectionPropertyPromoted->isPromoted();
16
17$reflectionPropertyRegular = new ReflectionProperty(Product::class, 'description');
18$isNotPromoted = $reflectionPropertyRegular->isPromoted();

引数(parameters)

引数なし

引数はありません

戻り値(return)

bool

このメソッドは、プロパティがコンストラクタ引数から昇格されたものであるかどうかを示す真偽値(trueまたはfalse)を返します。

関連コンテンツ

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