ConFoo 2025

BackedEnum arayüzü

(PHP 8 >= 8.1.0)

Giriş

BackedEnum arayüzü destekli sayılamalara motor tarafından özdevinimsel uygulanır. Kullanıcı tanımlı sınıflarla gerçeklenemez. Öntanımlı olarak motor tarafından sağlanan yöntemlerini sayılamalar geçersiz kılamaz. Yalnızca tür sınamaları için kullanılabilir.

Arayüz Sözdizimi

interface BackedEnum extends UnitEnum {
/* Yöntemler */
public static from(int|string $değer): static
public static tryFrom(int|string $değer): ?static
/* Miras alınan yöntemler */
public static UnitEnum::cases(): array
}

İçindekiler

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