温馨提示×

通过PHP递归函数实现权限树检查

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

下面是一个通过PHP递归函数实现权限树检查的示例代码:

<?php

// 定义权限树结构
$permissions = array(
    'user' => array(
        'create' => true,
        'read' => true,
        'update' => true,
        'delete' => true
    ),
    'post' => array(
        'create' => true,
        'read' => true,
        'update' => false,
        'delete' => false
    ),
    'comment' => array(
        'create' => true,
        'read' => true,
        'update' => false,
        'delete' => false
    )
);

// 定义用户权限
$userPermissions = array(
    'user' => array(
        'create' => true,
        'read' => true,
        'update' => true,
        'delete' => false
    ),
    'post' => array(
        'create' => true,
        'read' => true,
        'update' => false,
        'delete' => false
    )
);

// 递归检查权限
function checkPermission($permissions, $userPermissions)
{
    foreach ($permissions as $key => $value) {
        if (is_array($value)) {
            checkPermission($value, $userPermissions[$key]);
        } else {
            if ($value !== $userPermissions[$key]) {
                echo "权限不足:$key/$value\n";
            }
        }
    }
}

// 检查权限
checkPermission($permissions, $userPermissions);

?>

在这个示例中,我们首先定义了一个权限树结构 $permissions 和一个用户权限 $userPermissions。然后定义了一个递归函数 checkPermission 来逐层检查权限树和用户权限是否匹配。最后调用 checkPermission 函数来检查权限。如果权限不匹配,则输出提示信息。

请根据实际情况调整权限树和用户权限,并根据需要修改递归函数中的逻辑。

0