PHP 8.4.0 RC4 available for testing

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 from(int|string $value): static
public static tryFrom(int|string $value): ?static
/* Méthodes héritées */
public static UnitEnum::cases(): array
}

Sommaire

add a note

User Contributed Notes 1 note

up
14
whatuwant
2 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';
}
}

?>
To Top