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
2 years ago
https://gist.github.com/esdras-schonevald/71a6730e6191c5e9c053e2f65b839eec

<?php

declare(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 class
try {
throw new
MyException(MyExceptionCase::InvalidMethod);
} catch (
MyException $myE) {
echo
$myE->getMessage(); // Bad Request - Invalid Method
}
To Top