Avatar ·

Implementación de Enumeraciones (Enum) en PHP: ¿cómo hacerlo correctamente?

¡Hola a todos! Soy nuevo en PHP (escribo desde hace aproximadamente un año) y me encontré con un problema. En el proyecto necesito almacenar estados de pedidos: "nuevo", "en proceso", "enviado", "entregado". Actualmente uso constantes simples: ```php define('STATUS_NEW', 1); define('STATUS_PROCESSING', 2); define('STATUS_SHIPPED', 3); define('STATUS_DELIVERED', 4); ``` Pero esto es incómodo: primero, puedo pasar accidentalmente cualquier número a la función en lugar del estado, y PHP no mostrará un error. Segundo, si necesito agregar una descripción o un método para el estado (por ejemplo, "¿se puede cancelar el pedido?"), tengo que escribir funciones separadas. Tercero, al mostrar la lista de estados en un menú desplegable del formulario, me confundo con las claves y los valores. He oído que en PHP 8.1 aparecieron los enum nativos, pero el proyecto funciona en PHP 7.4 y aún no se puede actualizar. ¿Cómo implementar correctamente las enumeraciones en versiones antiguas de PHP? Necesito algo confiable, con verificación de tipos y la posibilidad de agregar métodos. ¡Agradeceré ejemplos de código! <<>>

Reglas