PHPerKaigi 2024

Интерфейс UnitEnum

(PHP 8 >= 8.1.0)

Введение

Интерфейс UnitEnum автоматически применяется движком ко всем перечислениям. Он не может быть реализован пользовательскими классами. Перечисления не могут переопределять его методы, поскольку реализации по умолчанию предоставляются движком. Доступен только для проверки типа.

Обзор интерфейсов

interface UnitEnum {
/* Методы */
public static cases(): array
}

Содержание

  • UnitEnum::cases — Возвращает список вариантов перечисления
add a note

User Contributed Notes 1 note

up
-1
leonardosahon at gmail dot com (Osahenrumwen A)
6 months ago
When looping through cases, you will need to access the values as an object and not an array, like this:

<?php

enum BlogStatus : string {
case
Published = "is_published";
case
Draft = "is_draft";
case
Scheduled = "is_scheduled";
}

foreach (
BlogStatus::case() as $datum){
echo
$datum->name . '<br />'; // Published || Draft || Scheduled
echo $datum->value . '<br />'; // is_publised || is_draft || is_scheduled
}

?>
To Top