Использование управления потоком php при доступе к методам и классам - PullRequest
0 голосов
/ 21 сентября 2011

В настоящее время я использую класс для управления доступом к определенным файлам на моем сайте.Класс работает отлично.Однако недавно мне сообщили, что мне нужно создать гораздо более детальную систему для одного конкретного раздела сайта.Первым делом я хотел использовать вложенные if-else-if для установки пары переменных.

$admin = new Admin();

if( $admin->user_access('can_view_g2')) {
    $groupNum = $group2;
    $adminGroup = true;
    } else {

if( $admin->user_access('can_view_g3')) {
    $groupNum = $group3;
    $adminGroup = false;
    } else {

if( $admin->user_access('can_view_g4')) {
    $groupNum = $group4;
    $adminGroup = true;
    } else {

. . . 

Теперь я хотел бы исключить несколько строк кода и создать более чистый оператор управления потоком.Я хотел бы использовать оператор switch для этого, но я не уверен, что это возможно, так как я обращаюсь к методам и свойствам класса.

switch ($admin->user_access($permission)) {

    case 'can_view_g2':
        $groupNum = $group2;
        $adminGroup = true;

    break;

    case 'can_view_g3':
        $groupNum = $group3;
        $adminGroup = true;;

    break;

    case 'can_view_g4':
        $groupNum = $group4;
        $adminGroup = true;

    . . .

То, что у меня есть выше, не работает,Кто-нибудь знает способ сделать это или, по крайней мере, более эффективный метод управления потоком?

Ответы [ 2 ]

1 голос
/ 21 сентября 2011

Попробуйте это:

$user_access = $admin -> user_access($permission);
switch($user_acces) {
...

Это из-за ошибки "невозможно использовать возвращаемое значение ...." ..

0 голосов
/ 21 сентября 2011

Если вы просто пытаетесь превратить блок if / else в переключатель / case:

switch (true) {
    case $admin->user_access('can_view_g2'):
        $groupNum = $group2;
        $adminGroup = true;
    break;

    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...