|
|
|
|
|
|
enum в PHP |

187
|
|
samdark
Александр Макаров
Специализации: 0
|
|
|
Часто приходится иметь дело с определённым набором значений-параметров, которые можно передать какому-либо методу. Многие просто используют для этого строковые значения:
| 1 | class Rights {
| | 2 | function check($role, User $user) {
| | 3 | return $user->role == $role;
| | 4 | }
| | 5 | }
| | 6 |
| | 7 | Rights::check('adminisrator', $me); |
class Rights {
function check($role, User $user) {
return $user->role == $role;
}
}
Rights::check('adminisrator', $me);
Как видно из примера выше, ошибиться довольно легко, а вот ошибку найти будет довольно сложно.
Одно из возможных решений — завести псевдо-enum класс Roles:
| 1 | class Roles {
| | 2 | const ADMINISTATOR = 'administrator';
| | 3 | const USER = 'user';
| | 4 | }
| | 5 |
| | 6 | class Rights {
| | 7 | function check($role, User $user) {
| | 8 | return $user->role == $role;
| | 9 | }
| | 10 | } |
class Roles {
const ADMINISTATOR = 'administrator';
const USER = 'user';
}
class Rights {
function check($role, User $user) {
return $user->role == $role;
}
}
Теперь вызов метода будет выглядеть так:
| 1 | Rights::check(Roles::ADMINISTATOR, $me); |
Rights::check(Roles::ADMINISTATOR, $me);
|
|
|
|
|
|
 Новости inPHP.org
30.12.2011 С наступающим Новым Годом!
Команда inPHP.org поздравляет всех посетителей сайта проекта с наступающим Новым Годом! Вероятно, многие участники проекта заметили некоторое затишье в уходящем году. Поверьте, в следующем всё будет несколько иначе!
31.12.2010 С Новым Годом!
Уважаемые коллеги, коллектив проекта inphp.org искренне поздравляет вас с наступающим Новым Годом!
27.05.2010 Технические работы.
По техническим причинам возможны кратковременные перебои в работе сайта проекта в период с 27.05.2010 по 1.06.2010.
02.03.2010 Доступ участников к разработке тестирований.
В тестовом режиме запущен функционал, позволяющий участникам проекта разрабатывать
собственные тестирования. Разработанные сообществом тестирования не имеют ограничений официальной
аккредитации и в любое время доступны любому участнику.
|
 |
|
|
|
|
|
 Содействуют развитию
 Участники проекта
|
 |
|
|
|
|
|
 Статистика проекта
| Всего пользователей: | 3648 |
| Из них аккредитовано: | 1468 |
| Были сегодня: | 2 |
| Уровень | Пользователи | |
| 7 | 74 | 2% |
| 6 | 237 | 6,5% |
| 5 | 207 | 5,7% |
| 4 | 194 | 5,3% |
| 3 | 365 | 10% |
| 2 | 40 | 1,1% |
| 1 | 350 | 9,6% |
| отсутствует | 2180 | 59,8% |
|
 |
|
|
|
|
|
|
|
|
|