Как использовать Enum в PHP 8

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

Как использовать Enum в PHP 8. Изображение 1.

Перечисление (enum) — это тип данных, который можно использовать для хранения значения из пользовательского набора. Они идеально подходят для представления типа опций, которые вы можете отображать в раскрывающемся списке.

PHP 8.1 теперь поддерживает перечисления. Использовать перечисления легко, но они предоставляют дополнительные возможности, позаимствованные из объектно-ориентированного программирования.

Эффекты перечисления

Перечисления полезны, когда вы хотите работать с фиксированным набором связанных значений. Например, вы можете использовать перечисление для представления наборов в наборе карточек или типе носителя.

Перечисления PHP довольно сложны, некоторые функции заимствованы из классов. Вы можете использовать их в сочетании с подсказками типов для написания более предсказуемого и строгого кода.

Основные перечисления

Перечисления обычно хранят скалярные значения. Они похожи на примитивные типы данных C, хотя перечисления PHP могут содержать как строковые значения, так и целые числа. Однако по умолчанию значения перечисления PHP не имеют скалярных эквивалентов. Они называются базовыми перечислениями:

enum Season { случай Spring; чехол Лето; дело Осень; чехол Зима; }

Обратите внимание, как PHP повторно использует ключевое слово case, которое вы встретите в операторе переключения. Значения перечисления представляют собой просто имена экземпляров. Вы можете обратиться к определенному значению перечисления с помощью следующей команды:

EnumTypeName::EnumField

Например, для обозначения зимы используйте:

Сезон::Зима

Вы можете присвоить это значение переменной и сравнить его с другими значениями сезона:

$favorite = Сезон::Лето; if ($favorite == get_current_ Season()) { echo “Это мой любимый сезон!”; }

Используя подсказки типов, вы можете ограничить параметры или возвращаемые типы определенным перечислением. Это помогает избежать ряда ошибок и упрощает редактирование кода:

функция get_current_ Season(): Season { $day = date(“z”); if ($day 333) return Season::Winter; если ($день

Если функция get_current_ Season попытается вернуть значение, отличное от Season, PHP выдаст фатальную ошибку TypeError.

Перечисления поддерживаются

PHP использует термин «поддерживаемое перечисление» для обозначения перечисления со значениями. Они могут быть целыми числами или строками:

enum Month: int {case Jan = 1; случай февраль = 2; //. }

Вам необходимо объявить поддерживаемый тип перечисления, и это должно быть int или string. Вы можете получить доступ к базовому значению, используя свойство значения только для чтения:

echo Month::Jan->value;

При использовании поддерживаемых перечислений вы также можете преобразовать их из скалярного эквивалента, используя метод from:

var_dump(Месяц::from(2));

методы перечисления

Перечисления PHP также имеют методы, что делает их немного похожими на сокращенный класс. Это показывает положение PHP между процедурными и объектно-ориентированными языками.

Например, вы можете добавить этот простой метод к перечислению Month, чтобы получить количество дней по определенному значению:

/* Примечание: обработка високосного года не производится! */ functiondaysInMonth(): int { if ($this == Month::Feb) return 28; if (in_array($this, array(Month::Apr, Month::Jun, Month::Sep, Month::Nov))) return 30; вернуть 31; }

Обратите внимание: вы можете использовать $this для ссылки на определенное значение перечисления точно так же, как вы используете $this для ссылки на определенный объект. Вы также можете использовать стандартный оператор равенства == для сравнения значений перечисления.

Enum также поддерживает статические методы. Например:

статическая функция random(): Month { return Month::from(rand(1, count(Month::cases()))); }

Выше приведены все, что вам нужно знать о перечислениях в PHP. Надеюсь, эта статья будет вам полезна.

В приведенной выше статье вы познакомились с «Как использовать Enum в PHP 8». СоветыНадейтесь, что эта статья вам поможет! Если эта статья кажется вам интересной и полезной, не забудьте поделиться ею. Спасибо!

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *