É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. }
Solutions de contournement pour PHP 8.0 et versions antérieures
Avant PHP 8.1, plusieurs solutions de contournement étaient couramment utilisés :
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) {} }
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
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')) { // ... }
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!