◐ Shell
clean mode source ↗

PHP: BackedEnum - Manual

The BackedEnum interface

(PHP 8 >= 8.1.0)

Introduction

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.

Interface synopsis

interface BackedEnum extends UnitEnum {

/* Methods */

public static function from(int|string $value): static

/* Inherited methods */

}

Table of Contents

Found A Problem?

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';
    }
}

?>