L'interface BackedEnum

(PHP 8 >= 8.1.0)

Introduction

L'interface BackedEnum est automatiquement appliquĂ©e aux Ă©numĂ©rations avec valeur de base par le moteur. Elle ne peut pas ĂȘtre implĂ©mentĂ©e par des classes dĂ©finies par l'utilisateur. Les Ă©numĂ©rations ne peuvent pas surcharger ses mĂ©thodes, car les implĂ©mentations par dĂ©faut sont fournies par le moteur. Elle n'est disponible que pour les vĂ©rifications de type.

Sommaire de l'Interface

interface BackedEnum extends UnitEnum {
/* Méthodes */
public static function from(int|string $value): static
public static function tryFrom(int|string $value): ?static
/* Méthodes héritées */
public static function UnitEnum::cases(): array
}

Sommaire

add a note

User Contributed Notes 1 note

up
17
whatuwant ¶
4 years ago
As of PHP 8.1, while `UnitEnum` & `BackedEnum` cannot be implemented by user-defined classes, it seems they can be extended by user-defined interfaces and eventually be implemented by enums.

<?php

interface TestEnumInterface extends \BackedEnum
{
    public function foo(): string;
}

enum TestEnum: string implements TestEnumInterface
{
    case CASE_1 = 'case 1';
    case CASE_2 = 'case 2';

    public function foo(): string
    {
        return 'bar';
    }
}

?>