阅读量: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
。
通过这种方式,我们可以在多层级权限数组中进行递归检查,确保用户拥有所需的权限。