Implémentation des énumérations (Enum) en PHP : comment bien faire ?
Bonjour à tous ! Je suis novice en PHP (j'écris depuis environ un an) et j'ai rencontré un problème. Dans le projet, je dois stocker les statuts des commandes : "nouveau", "en traitement", "expédié", "livré". Actuellement, j'utilise des constantes ordinaires :
```php
define('STATUS_NEW', 1);
define('STATUS_PROCESSING', 2);
define('STATUS_SHIPPED', 3);
define('STATUS_DELIVERED', 4);
```
Mais ce n'est pas pratique : premièrement, je peux accidentellement passer n'importe quel nombre à une fonction au lieu d'un statut, et PHP ne générera pas d'erreur. Deuxièmement, si je dois ajouter une description ou une méthode pour un statut (par exemple, "peut-on annuler la commande ?"), je dois écrire des fonctions séparées. Troisièmement, lors de l'affichage de la liste des statuts dans une liste déroulante de formulaire, je me mélange avec les clés et les valeurs.
J'ai entendu dire que dans PHP 8.1, les énumérations natives sont apparues, mais le projet fonctionne sur PHP 7.4 et je ne peux pas encore mettre à jour. Comment implémenter correctement les énumérations dans les anciennes versions de PHP ? Il me faut quelque chose de fiable, avec vérification des types et possibilité d'ajouter des méthodes. Je serais reconnaissant pour des exemples de code !
<<>>