Maison > développement back-end > tutoriel php > Comment utiliser les énumérations en PHP, y compris les solutions de contournement pour les versions antérieures à 8.1 ?

Comment utiliser les énumérations en PHP, y compris les solutions de contournement pour les versions antérieures à 8.1 ?

Patricia Arquette
Libérer: 2024-12-17 16:33:10
original
466 Les gens l'ont consulté

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

Énumérations en PHP : prise en charge de PHP 8.1 et solutions de contournement

PHP a longtemps manqué d'énumérations natives, laissant les développeurs chercher des solutions de contournement. Cependant, avec la sortie de PHP 8.1, la prise en charge complète des énumérations est enfin arrivée.

PHP 8.1 : énumérations natives

À partir de PHP 8.1, les énumérations sont officiellement prises en charge . Ils fournissent un moyen concis et sûr de définir des ensembles de valeurs prédéfinies :

enum DaysOfWeek: int
{
    case Sunday = 0;
    case Monday = 1;
    // etc.
}
Copier après la connexion

Solutions de contournement pour PHP 8.0 et versions antérieures

Avant PHP 8.1, plusieurs solutions de contournement étaient couramment utilisés :

  • Constantes : Les constantes fournissent des valeurs globales et immuables. Cependant, ils peuvent entraîner des collisions d'espaces de noms et ne sont pas aussi polyvalents que les véritables énumérations.
  • Tableaux : Les tableaux sont plus flexibles mais peuvent être remplacés et ne prennent pas en charge le remplissage automatique dans les IDE.

Une solution de contournement plus avancée consiste à créer une classe d'énumération de base avec validation statique méthodes :

abstract class BasicEnum
{
    // ...
    public static function isValidName($name, $strict = false) {}
    public static function isValidValue($value, $strict = true) {}
}
Copier après la connexion

L'extension de cette classe permet une validation d'entrée simple :

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

DaysOfWeek::isValidName('Humpday');                  // false
DaysOfWeek::isValidValue(7);                         // false
Copier après la connexion

SplEnum pour PHP 5.3

Si vous utilisez PHP 5.3 ou plus tard, SplEnum fournit une version plus robuste solution de contournement :

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

if ($days->isValid('Monday')) {
    // ...
}
Copier après la connexion

Conclusion

Les énumérations natives dans PHP 8.1 simplifient le code et améliorent la sécurité des types. Pour les versions antérieures, diverses solutions de contournement existent, notamment les constantes, les tableaux et les classes BasicEnum ou SplEnum.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal