Стандартное перечисление (enum) в PHP8 предлагает статический метод cases(), возвращающий массив элементов типа enum. Однако, иногда при решении задач требуется массив именно значений (int или string в зависимости от характера нашего Backed Enum), поэтому для таких случаев в наш энам мы можем добавить статический метод.

Способ для ванильного PHP

Почему лучше написать так? Всё просто — при смене фреймворка нам не придётся мучаться и переписывать реализацию, так как она будет поддерживаться для любого приложения на PHP. Ниже сигнатура и реализация метода:

public static function values(): array
{
	return array_column(static::cases(), 'value');
}

Предполагается линейная временная сложность на этом методе, то есть, , где — количество значений в перечислении.

Способ для Laravel-приложений

В данном случае можно использовать коллекции (класс \Illuminate\Support\Collection) через хелпер collect:

public static function values(): array
{
	return collect(static::cases())->pluck('value')->toArray();
}