用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
之后再有就照这个方式处理就可以了!
简单写了下,希望对新手有些帮助!