PHP Conference Nagoya 2025

Die BackedEnum-Schnittstelle

(PHP 8 >= 8.1.0)

Einführung

Die BackedEnum-Schnittstelle wird von der PHP-Engine automatisch auf Backed Enums angewendet. Sie darf nicht von benutzerdefinierten Klassen implementiert werden. Aufzählungen (Enumerations) dürfen ihre Methoden nicht überschreiben, da die Standardimplementierung von der Engine bereitgestellt wird. Diese Schnittstelle existiert ausschließlich für Typüberprüfungen.

Interface-Übersicht

interface BackedEnum extends UnitEnum {
/* Methoden */
public static from(int|string $value): static
public static tryFrom(int|string $value): ?static
/* Geerbte Methoden */
public static UnitEnum::cases(): array
}

Inhaltsverzeichnis

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