PHP按位权限

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP按位权限相关的知识,希望对你有一定的参考价值。

Usage:

define('PIRATE',bindec('0001')); // 1
define('NINJA',bindec('0010')); // 2
define('JEDI',bindec('0100')); // 4
define('ADMIN',bindec('1000')); // 8

$rpermit = array(PIRATE,JEDI); // Equivilent Flags '0101'

$jim['permission'] = ADMIN + JEDI; // 12
$joe['permission'] = ADMIN + NINJA; // 10
$jon['permission'] = PIRATE; // 1

var_dump(isPermitted($rpermit,$jim['permission']));
var_dump(isPermitted($rpermit,$joe['permission']));
  1. <?php
  2. function isPermitted(Array $types, $userPermission) {
  3. $resourcePermission = array_reduce($types,create_function('$n,$m','$n += (int)$m; return $n;'), 0);
  4. return ($resourcePermission & (int)$userPermission)?true:false;
  5. }
  6. ?>

以上是关于PHP按位权限的主要内容,如果未能解决你的问题,请参考以下文章

php 使用按位运算符检查权限

Discord按位权限计算器[关闭]

spring security acl 不比较按位权限

利用按位运算符轻松管理权限

使用按位比较与权限模型忽略第一位

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段