php二进制权限处理(for beginner)

用php二进制控制权限可以给我们带来很大的方便

举个例子:

目前有3个功能:A、B、C

那么对应我们给他们3个赋个权限值:

A:1;B:2;C:4

是为新手写的,所以说明下:(高手绕道吧)

00000000,这个是个二进制码,从右向左,第一位为1的时候值为1,(A),第二位为1时值为2(B),第三位为1时值为4(C),以此类推!

那么我们可以用的权限值为:1,2,4,8,16,32……

目前有3个用户:a、b、c

好了,现在我们给用户赋权限值:

a用户拥有AB两个功能权限,权限值为A+B=3;

b用户拥有AC两个功能权限,权限值为A+C=5;

c用户拥有ABC三个功能权限,权限值为A+B+C=7;


好了下面是php的环节,我们取当前模块权限值和用户的权限值对比就可以得到用户是否拥有权限了

代码实例如下:

//A功能的权限值定义
$a_ex = 1;
//a用户的权限值定义
$a_ur = 3;
if($a_ur & $a_ex) echo "有次功能权限";
else echo "无此功能权限";

好,基本的权限处理就是这样了!


下面我们来说下权限新增的处理。

如果这个时候有了个新的D功能出现,那么我们依次给它一个权限值为:8

这个时候如果需要给a用户怎么D功能的权限,那么只需要将D功能的权限值加到用户权限值上

新的权限值为:3+8=11

之后再有就照这个方式处理就可以了!


简单写了下,希望对新手有些帮助!




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值