PHP Conference Kansai 2025

La interfaz BackedEnum

(PHP 8 >= 8.1.0)

Introducción

La interfaz BackedEnum es automáticamente aplicada a las enumeraciones con valor de base por el motor. No puede ser implementada por clases definidas por el usuario. Las enumeraciones no pueden sobreescribir sus métodos, ya que las implementaciones por omisión son proporcionadas por el motor. Solo está disponible para las verificaciones de tipo.

Sinopsis de la Interfaz

interface BackedEnum extends UnitEnum {
/* Métodos */
public static from(int|string $value): static
public static tryFrom(int|string $value): ?static
/* Métodos heredados */
public static UnitEnum::cases(): array
}

Tabla de contenidos

add a note

User Contributed Notes 1 note

up
14
whatuwant
3 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