Heim >Backend-Entwicklung >PHP-Tutorial >Wie verwende ich Aufzählungen in PHP, einschließlich Workarounds für Versionen vor 8.1?

Wie verwende ich Aufzählungen in PHP, einschließlich Workarounds für Versionen vor 8.1?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-17 16:33:10462Durchsuche

How Do I Use Enumerations in PHP, Including Workarounds for Versions Before 8.1?

Aufzählungen in PHP: PHP 8.1-Unterstützung und Problemumgehungen

PHP mangelte es lange Zeit an nativen Aufzählungen, sodass Entwickler nach Problemumgehungen suchten. Mit der Veröffentlichung von PHP 8.1 ist jedoch endlich eine umfassende Enum-Unterstützung verfügbar.

PHP 8.1: Native Enums

Ab PHP 8.1 werden Enums offiziell unterstützt . Sie bieten eine prägnante und typsichere Möglichkeit, Sätze vordefinierter Werte zu definieren:

enum DaysOfWeek: int
{
    case Sunday = 0;
    case Monday = 1;
    // etc.
}

Problemumgehungen für PHP 8.0 und früher

Vor PHP 8.1 mehrere Problemumgehungen wurden häufig verwendet:

  • Konstanten:Konstanten Bereitstellung globaler, unveränderlicher Werte. Sie können jedoch zu Namespace-Kollisionen führen und sind nicht so vielseitig wie echte Aufzählungen.
  • Arrays:Arrays sind flexibler, können aber überschrieben werden und haben keine Unterstützung für automatisches Ausfüllen in IDEs.

Eine erweiterte Problemumgehung besteht darin, eine Basis-Enum-Klasse mit statischer Validierung zu erstellen Methoden:

abstract class BasicEnum
{
    // ...
    public static function isValidName($name, $strict = false) {}
    public static function isValidValue($value, $strict = true) {}
}

Die Erweiterung dieser Klasse ermöglicht eine einfache Eingabevalidierung:

abstract class DaysOfWeek extends BasicEnum
{
    // ...
}

DaysOfWeek::isValidName('Humpday');                  // false
DaysOfWeek::isValidValue(7);                         // false

SplEnum für PHP 5.3

Bei Verwendung von PHP 5.3 oder Später bietet SplEnum eine robustere Problemumgehung:

$days = new SplEnum(array(
    'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'
));

if ($days->isValid('Monday')) {
    // ...
}

Fazit

Native Aufzählungen in PHP 8.1 vereinfachen Code und verbessern die Typsicherheit. Für frühere Versionen gibt es verschiedene Problemumgehungen, einschließlich Konstanten, Arrays und der BasicEnum- oder SplEnum-Klassen.

Das obige ist der detaillierte Inhalt vonWie verwende ich Aufzählungen in PHP, einschließlich Workarounds für Versionen vor 8.1?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn