Blog de Gonzalo

ENUMS EN PHP

Una de las novedades de versión 8.1 de php es que se añade el tipo enums (enumerados) que son un tipo de datos definido por el usuario y que consiste en un conjunto de valores posibles. De igual manera que los enum en mysql. Los enums se construyen sobre clases y objetos. Se comportan de forma similar y tienen casi los mismos requisitos. Los enums comparten los mismos espacios de nombres que las clases, las interfaces y los traits.
Ejemplo declaración de enums en php:


enum tipoVehiculos
{
    case Coche;
    case Camion;
    case Moto;
    case Furgoneta;
}
//Para mostrar uno de los enums:
$vehiculo = tipoVehiculos::Coche;
var_dump(tipoVehiculos->name);
//Mostrará "Coche"

En el caso anterior se puede ver una declaración normal. Pero también se pueden definir backed Enums, o enums respaldados, si se quiere dar un valor equivalente a un escalar a cualquier caso. Sin embargo, los enums respaldados solo pueden tener un tipo, ya sea int o string pero nunca ambos.

enum tipoVehiculos2: string
{
    case Coche = 'Coche';
    case Camion = 'Camion';
    case Moto = 'Moto';
    case Furgoneta = 'Furgo';
}
//Para mostrar uno de los enums:
$vehiculo = tipoVehiculos2::Furgoneta;
var_dump(tipoVehiculos->value);
//Mostrará "Furgo"

Todos los casos diferentes de un enum respaldado deben tener un valor único. Y nunca puedes mezclar enums puros y respaldados.

Os invito a ver los enums en mysql.

Compartir en twitter