2024年PHP日本大会

BackedEnum 接口

(PHP 8 >= 8.1.0)

简介

引擎会自动将BackedEnum接口应用于支持后端的枚举。用户定义的类不能实现它。枚举不能重写其方法,因为引擎提供了默认实现。它仅用于类型检查。

接口概要

interface BackedEnum extends UnitEnum {
/* 方法 */
public static from(int|string $value): static
public static tryFrom(int|string $value): ?static
/* 继承的方法 */
public static UnitEnum::cases(): array
}

目录

添加注释

用户贡献的注释 1 条注释

whatuwant
2 年前
从 PHP 8.1 开始,虽然 `UnitEnum` & `BackedEnum` 不能由用户定义的类实现,但它们似乎可以由用户定义的接口扩展,并最终由枚举实现。

<?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