Как избежать повторного вызова функции - PullRequest
0 голосов
/ 29 мая 2020

Я создал функцию с именем remove_role, которая использовалась для удаления прав доступа в зависимости от роли. Я могу добиться этого, снова и снова вызывая функцию. Есть ли другой способ избежать повторного вызова функции?

    remove_role('author', 'edit_others_pages');
    remove_role('author', 'upload_files');
    remove_role('author', 'manage_categories');```


Ответы [ 2 ]

3 голосов
/ 29 мая 2020

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

$roles = ['role1', 'role2', 'role3'];

foreach ($roles in $role) {
   remove_role('author', $role);
}

Фактически, вы также можете использовать hash, например $roles = ['author' => 'role1', 'somethng else' => 'role2'], и l oop, через которые тоже.

0 голосов
/ 29 мая 2020

Все очень сильно зависит от того, что находится в вашей функции remove_role, но один из подходов - использовать массив, а затем l oop через него в вашей функции, например,

$protectedPages = ['edit_other_pages','upload_files','manage_categories']
remove_role('author', $protectedPages);

public function remove_role($role, $pages) {

     foreach($pages as $page) {
        // Do what you need to do here
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...