PHP Conference Fukuoka 2025

Las enumeraciones

(PHP 8 >= 8.1.0)

Las enumeraciones básicas

Las enumeraciones constituyen una capa restrictiva sobre las clases y las constantes de clase. Permiten definir un conjunto cerrado de valores posibles para un tipo.

<?php
enum Suit
{
case
Hearts;
case
Diamonds;
case
Clubs;
case
Spades;
}

function
do_stuff(Suit $s)
{
// ...
}

do_stuff(Suit::Spades);
?>

Para una descripción completa, ver el capítulo sobre las enumeraciones.

Conversión

Si una enum es convertida en object, no es modificada. Si una enum es convertida en array, un array con una sola clave name (para las Pure enums) o un array con las claves name y value (para las Backed enums) es creado. Todos los otros tipos de conversión resultarán en un error.

add a note

User Contributed Notes 1 note

up
50
esdras-schonevald
3 years ago
https://gist.github.com/esdras-schonevald/71a6730e6191c5e9c053e2f65b839eec<?phpdeclare(strict_types=1);/** * This is a sample * How to use Enum to create a custom exception cases * PHP 8.1^ */enum MyExceptionCase {    case InvalidMethod;    case InvalidProperty;    case Timeout;}class MyException extends Exception {    function __construct(private MyExceptionCase $case){        match($case){            MyExceptionCase::InvalidMethod      =>    parent::__construct("Bad Request - Invalid Method", 400),            MyExceptionCase::InvalidProperty    =>    parent::__construct("Bad Request - Invalid Property", 400),            MyExceptionCase::Timeout            =>    parent::__construct("Bad Request - Timeout", 400)        };    }}// Testing my custom exception classtry {    throw new MyException(MyExceptionCase::InvalidMethod);} catch (MyException $myE) {    echo $myE->getMessage();  // Bad Request - Invalid Method}
To Top