在PHP中通过递归实现多层级权限检查

avatar
作者
筋斗云
阅读量:0

在PHP中通过递归实现多层级权限检查可以使用以下代码示例:

function checkPermission($permissions, $requiredPermission) {     if (in_array($requiredPermission, $permissions)) {         return true;     }      foreach ($permissions as $permission) {         if (is_array($permission) && checkPermission($permission, $requiredPermission)) {             return true;         }     }      return false; }  $permissions = [     'admin',     'user',     [         'editor',         [             'viewer'         ]     ] ];  $requiredPermission = 'viewer'; if (checkPermission($permissions, $requiredPermission)) {     echo "Permission granted"; } else {     echo "Permission denied"; } 

在上面的示例中,我们定义了一个checkPermission函数来递归检查权限。该函数接收两个参数:$permissions是一个包含权限的数组,$requiredPermission是需要检查的权限。函数首先检查是否在当前权限数组中找到了所需权限,如果找到则返回true,否则继续递归检查每个子权限数组。如果最终没有找到所需权限,则返回false

通过这种方式,我们可以在多层级权限数组中进行递归检查,确保用户拥有所需的权限。