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