Enumerations

(PHP 8 >= 8.1.0)

Enumerações Básicas

Enumerations são uma camada de restrição sobre classes e constantes de classe, destinadas a fornecer uma maneira de definir um conjunto fechado de valores possíveis para um tipo.

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

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

do_stuff(Suit::Spades);
?>

Para uma discussão completa, consulte o capítulo Enumerations.

Casting

Se um enum for convertido em um object, ele não será modificado. Se um enum for convertido em um array, será criado um array com uma única chave de name (para enumerations puras) ou um array com chaves name e value (para enumerations com backup). Todos os outros tipos de conversão resultarão em erro.

adicione uma nota

Notas Enviadas por Usuários (em inglês) 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