PHP 8.4.2 Released!

The BackedEnum interface

(PHP 8 >= 8.1.0)

Вступ

The BackedEnum interface is automatically applied to backed enumerations by the engine. It may not be implemented by user-defined classes. Enumerations may not override its methods, as default implementations are provided by the engine. It is available only for type checks.

Короткий огляд iнтерфейcу

interface BackedEnum extends UnitEnum {
/* Методи */
public static from(int|string $value): static
public static tryFrom(int|string $value): ?static
/* Успадковані методи */
public static UnitEnum::cases(): array
}

Зміст

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