你的问题有点模糊,但我会尽我所能.你说你将他们的权限存储在数组$权限中.
public static $permissions = array();
public static function setPermissions($perms)
{
if (!is_array($perms)) {
throw new Exception('$perms must be an array.');
}
self::$permissions = $perms;
}
public static function hasPermission($section, $action)
{
if (array_key_exists($section, self::$permissions)
&& in_array($action, self::$permissions[$section])
) {
return true;
}
return false;
}
使用该逻辑,当您从DB读取用户的权限时,请设置Class :: $permissions static var,如下所示:
Class::setPermissions($permissions);
// ...
if (Class::hasPermissions($page, $action)) {
// user has permission
}
请注意,我的代码非常通用,在我有更多信息之前必须保持这种状态.现在,我假设您的权限数组使用页面部分作为索引,而数组是该页面部分中用户有权访问的操作列表.因此,假设$page已设置为类似“论坛”并且用户当前正在尝试执行编辑(因此$action =’edit’),则Class :: hasPermission()函数将返回true.