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

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

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

作成日: 更新日:

基本的な使い方

isProtectedSetメソッドは、PHPのReflectionPropertyクラスに属し、指定されたクラスのプロパティ(クラス内で定義される変数)が、protectedアクセス修飾子を持ち、かつ、値を設定できる状態であるかどうかを判別するメソッドです。このメソッドはPHP 8.1で導入されました。

ReflectionPropertyは、プログラムが実行されている最中に、クラスのプロパティに関する詳細な情報を動的に取得するための機能を提供します。isProtectedSetメソッドを使用することで、あるプロパティが、そのクラス自身と、そのクラスを継承した子クラスからのみアクセス可能な「保護された」プロパティであり、さらに、値を設定する際に特別なマジックメソッド__set()による処理が介在しない、つまり直接値を設定可能な状態であるかをチェックできます。

具体的には、対象のプロパティがprotectedであり、かつ、クラスに__set()マジックメソッドが定義されていない場合にtrueを返します。この機能は、プログラムの実行中にプロパティのアクセス権限や設定可能性を厳密に検証したい場合に、特に有効な手段となります。

構文(syntax)

1<?php
2
3class MyClass {
4    protected string $propertyName;
5    private int $privateProperty;
6}
7
8$reflectionProperty = new ReflectionProperty('MyClass', 'propertyName');
9
10$isProtectedAndSettable = $reflectionProperty->isProtectedSet();

引数(parameters)

引数なし

引数はありません

戻り値(return)

bool

このメソッドは、プロパティが protected 修飾子で宣言されている場合に true を返します。それ以外の場合は false を返します。

関連コンテンツ