PHP Conference Japan 2024

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 則註記

14
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