Implementierung von Enumerationen (Enum) in PHP: Wie macht man es richtig?
Hallo zusammen! Ich bin neu in PHP (schreibe seit etwa einem Jahr) und bin auf ein Problem gestoßen. Im Projekt müssen Bestellstatus gespeichert werden: "neu", "in Bearbeitung", "versandt", "geliefert". Derzeit verwende ich normale Konstanten:
```php
define('STATUS_NEW', 1);
define('STATUS_PROCESSING', 2);
define('STATUS_SHIPPED', 3);
define('STATUS_DELIVERED', 4);
```
Aber das ist unpraktisch: Erstens kann ich versehentlich eine beliebige Zahl anstelle des Status an eine Funktion übergeben, und PHP gibt keinen Fehler aus. Zweitens, wenn ich eine Beschreibung oder Methode für den Status hinzufügen muss (z. B. "Kann die Bestellung storniert werden?"), muss ich separate Funktionen schreiben. Drittens verwirre ich bei der Ausgabe der Statusliste in einem Dropdown-Formular die Keys und Values.
Ich habe gehört, dass PHP 8.1 native Enums eingeführt hat, aber das Projekt läuft auf PHP 7.4 und ein Update ist derzeit nicht möglich.