PHP の列挙
PHP では、列挙はまだネイティブにサポートされていません。ただし、エミュレートされた列挙型を定義して操作するために使用できるメソッドがいくつかあります。
PHP 8.1 以降
PHP は、便利な型と型を提供する列挙型をネイティブにサポートするようになりました。 -事前定義された値のセットを表す安全な方法。以下に例を示します。
enum DaysOfWeek: int { case Sunday = 0; case Monday = 1; // etc. }
PHP 8.0 以前
8.1 より前のバージョンの PHP では、列挙型をシミュレートするためのさまざまなアプローチがあります。
の定数名前空間
これには、衝突を避けるために独自の名前空間で定数を定義することが含まれます:
abstract class DaysOfWeek { const Sunday = 0; const Monday = 1; // etc. }
ただし、このアプローチは、名前空間の混乱とグローバル スコープの問題を引き起こす可能性があります。
カスタム enum クラス
カスタム enum クラスは次のことができます。さらなる柔軟性と検証機能を提供します。
abstract class BasicEnum { // Caching array for constants private static $constCacheArray = NULL; // Get constants using reflection private static function getConstants() { ... } // Validate constant names and values public static function isValidName() { ... } public static function isValidValue() { ... } } class DaysOfWeek extends BasicEnum { ... }
この列挙クラスでは、定数の名前と値の両方のカスタマイズ可能な検証が可能です。
SplEnum
If PHP >= 5.3 が利用可能です。Spl の SplEnum クラスも使用できます。 extension:
class DaysOfWeek extends SplEnum { const Sunday = 0; const Monday = 1; // etc. }
ただし、SplEnum はインスタンス化を使用するため、上記のアプローチより直感的ではない可能性があります。
概要
PHP にはいくつかのオプションがあります列挙型をエミュレートするため。簡素化と型安全性のために PHP 8.1 でのネイティブ サポートが推奨されますが、カスタム enum クラスの方が柔軟性が高くなります。
以上が8.1 の前後のバージョンを考慮して、PHP で列挙型を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。