Тип данных enum в PHP 8
Доброго времени суток! Сегодня мы поговорим с Вами о том, что такое перечисления в PHP 8.
Перечисления (enum) были введены в PHP 8 как новый тип данных, который позволяет определить набор именованных значений, представляющих отдельные элементы фиксированного множества. Перечисления обеспечивают улучшение читаемости кода и снижение вероятности ошибок.
Объявление перечислений:
Перечисление объявляется с использованием ключевого слова enum. Каждый элемент перечисления - это константное значение с ассоциированным именем:
// перечисление - Статус
enum Status {
case PENDING;
case APPROVED;
case REJECTED;
}
Использование перечислений:
После объявления вы можете использовать значения перечисления в своем коде:
function processStatus(Status $status) {
switch ($status) {
case Status::PENDING:
return "Ждет выполнения";
case Status::APPROVED:
return "Принято";
case Status::REJECTED:
return "Отклонено";
}
}
$status = Status::APPROVED;
echo processStatus($status); // Вывод: Принято!
Свойства перечислений:
У перечислений могут быть связанные значения, что делает их более удобными в использовании:
enum UserRole: string {
case ADMIN = 'admin';
case USER = 'user';
}
Перебор элементов перечислений:
Значения перечисления можно легко перебрать в цикле:
foreach (UserRole::cases() as $role) {
echo $role . PHP_EOL;
}
// Вывод:
// ADMIN
// USER
Перечисления и оператор switch:
Перечисления легко интегрируются с операторами switch:
function processRole(UserRole $role) {
switch ($role) {
case UserRole::ADMIN:
return "Предоставлены права администратора.";
case UserRole::USER:
return "Обычный пользователь.";
}
}
$userRole = UserRole::ADMIN;
echo processRole($userRole); // Вывод: Предоставлены права администратора.
Подсказки по типам:
Перечисления могут использоваться для подсказок по типам (typehint) в параметрах функций/методов:
function updateUserRole(UserRole $newRole) {
// Код для обновления роли пользователя
}
updateUserRole(UserRole::USER);
Преимущества:
- Читаемость: Перечисления делают код более читаемым, предоставляя осмысленные имена значениям.
- Поддерживаемость: Легко добавлять или удалять значения без влияние на другие части кода.
- Безопасность типов: Перечисления помогают обнаруживать ошибки, связанные с типами, на этапе разработки.
- Автозаполнение: Среды разработки могут предоставлять автозаполнение для значений перечисления.
Заключение:
Перечисления PHP 8 предоставляют удобный и выразительный способ работы с фиксированным набором связанных значений. Они улучшают качество кода, уменьшая зависимость от необработанных, потенциально ошибочных значений и поощряя использование осмысленных имен. Перечисления улучшают поддерживаемость кода, делают его более самодокументируемым и способствуют более приятному опыту разработки.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.