Les énumérations

(PHP 8 >= 8.1.0)

Les énumérations de base

Les énumérations constituent une couche restrictive au-dessus des classes et des constantes de classe, Elles permettent de définir un ensemble fermé de valeurs possibles pour un type.

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

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

do_stuff(Suit::Spades);
?>

Pour une description complète, voir le chapitre sur les énumérations.

Casting

Si une enum est convertie en object, elle n'est pas modifiée. Si une enum est convertie en array, un tableau avec une seule clé name (pour les Pure enums) ou un tableau avec les clés name et value (pour les Backed enums) est créé. Tous les autres types de conversion entraîneront une erreur.

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