《PHP实战:PHP巧妙利用位运算实现网站权限管理的方法》要点:
本文介绍了PHP实战:PHP巧妙利用位运算实现网站权限管理的方法,希望对您有用。如果有疑问,可以联系我们。
首先我们先定义4个常量来设定四种权限:PHP编程
=====================================
PHP编程
define(ADD,1);//增加数据库记录的权限
define(UPD,2);//修改数据库记录的权限
define(SEL,4);//查找数据库记录的权限
define(DEL,8);//删除数据库记录的权限
PHP编程
=====================================
PHP编程
接下来假设有3个用户:
PHP编程
A用户拥有ADD-UPD-SEL-DEL四个权限,用位或运算计算A的权限总值
$a_all=ADD|UPD|SEL|DEL;//$all=15 可以注意到这个值和加法的结果是一样的
B用户拥有ADD-UPD-SEL三个权限,用位或运算计算B的权限总值
$b_all=ADD|UPD|SEL;//$all=7 这个值和加法的结果又是一样的
C用户拥有ADD-UPD两个权限,用位或运算计算C的权限总值
$c_all=ADD|UPD;//$all=3 这个值和加法的结果还是一样的PHP编程
=====================================
PHP编程
接下来我们用位与做运算
$a_all&ADD 结果为真
$a_all&UPD 结果为真
$a_all&SEL 结果为真
$a_all&DEL 结果为真
PHP编程
=====================================
PHP编程
$b_all&ADD 结果为真
$b_all&UPD 结果为真
$b_all&SEL 结果为真
$b_all&DEL 结果为假
PHP编程
=====================================
PHP编程
$c_all&ADD 结果为真
$c_all&UPD 结果为真
$c_all&SEL 结果为假
$c_all&DEL 结果为假
PHP编程
=====================================
PHP编程
发现奥秘没有?PHP编程
1、当权限总值和没有的那个权限做位与运算,结果为假
PHP编程
2、权限的值都是2的次方
PHP编程
知道了这两点权限的处理就变得简单了吧,只要在每次执行涉及权限操作的时候把用户当前的权限总值和当前操作需要的权限做位与运算.如果结果为真执行,为假做报错处理就行啦(当然也不一定时报错,你可以自己设计没有权限时的程序).PHP编程
以上这篇PHP巧妙利用位运算实现网站权限管理的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持维易PHP.PHP编程
转载请注明本页网址:
http://www.vephp.com/jiaocheng/1493.html