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

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

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

作成日: 更新日:

基本的な使い方

hasCaseメソッドは、対象の列挙型(enum)が指定された名前のケース(列挙値)を保持しているかどうかを検査するメソッドです。このメソッドは、PHP 8.1で導入された列挙型を扱うReflectionEnumクラスに属します。列挙型は、プログラム内で特定の値の集合を表現する際に便利なデータ型で、例えば「曜日」や「ステータス」など、あらかじめ決められた選択肢の中から一つを選ぶような場面で利用されます。

ReflectionEnumクラスは、このような列挙型がどのようなケースを持っているか、どのような構造をしているかなどを、プログラム実行中に調べることができる「リフレクション」と呼ばれる機能を提供します。hasCaseメソッドは、その中でも特に、ある特定の文字列が列挙型内で有効なケース名として定義されているかを確認するために使われます。

このメソッドはstring型の引数$caseNameを受け取ります。この$caseNameには、存在を確認したい列挙値の名前を指定します。もし指定された$caseNameと完全に一致する(大文字小文字を区別します)ケースが列挙型内に存在すれば、メソッドはtrueを返します。反対に、一致するケースが見つからなければfalseを返します。これにより、外部からの入力値が有効な列挙値であるかを検証する際や、プログラムの柔軟性を向上させたい場合に、安全かつ効率的に列挙値の存在を確認することができます。

構文(syntax)

1<?php
2
3// 任意の列挙型 (Enum) を定義します
4enum MyStatus
5{
6    case ACTIVE;
7    case PENDING;
8}
9
10// ReflectionEnum オブジェクトを作成し、対象のEnumクラスを渡します
11$reflectionEnum = new ReflectionEnum(MyStatus::class);
12
13// hasCase メソッドを呼び出し、引数にケース名を文字列で指定します
14// 指定したケースが存在すれば true、存在しなければ false が返されます
15$hasActiveCase = $reflectionEnum->hasCase('ACTIVE');
16$hasUnknownCase = $reflectionEnum->hasCase('UNKNOWN');
17
18// $hasActiveCase は true になります
19// $hasUnknownCase は false になります
20
21?>

引数(parameters)

string $name

  • string $name: 検索したいEnumケースの名前を指定する文字列

戻り値(return)

bool

指定された名前のケースが列挙型内に存在するかどうかを示す真偽値を返します。

関連コンテンツ