温馨提示×

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

PHP
小樊
82
2024-04-26 20:42:54
栏目: 编程语言

在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

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

0