PHP Conference Fukuoka 2025

Enumerações

(PHP 8 >= 8.1.0)

Enumerações Básicas

Enumerações 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 sobre enumerações.

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 enumerações puras) ou um array com chaves name e value (para enumerações com backup). Todos os outros tipos de conversão resultarão em erro.

adicionar nota

Notas de Usuários 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