PHP

enum в PHP

Часто приходится иметь дело с определённым набором значений-параметров, которые можно передать какому-либо методу. Многие просто используют для этого строковые значения:
class Rights {
     function check($role, User $user) {
          return $user->role == $role;
     }
}

Rights::check('adminisrator', $me);

Как видно из примера выше, ошибиться довольно легко, а вот ошибку найти будет довольно сложно.

Одно из возможных решений — завести псевдо-enum класс Roles:
class Roles {
     const ADMINISTATOR = 'administrator';
     const USER = 'user';
}

class Rights {
     function check($role, User $user) {
          return $user->role == $role;
     }
}

Теперь вызов метода будет выглядеть так:
Rights::check(Roles::ADMINISTATOR, $me);
Добавлено: 27 Августа 2013 05:51:46 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...