<?php
//首先将权限按照2的次方来定义值,依次类推
define('ADD',1);//增加权限
define('UPD',2);//修改权限
define('SEL',4);//查找权限
define('DEL',8);//删除权限
$a_access = ADD | UPD | SEL | DEL; // A拥有增删改查权限
$b_access = ADD | UPD | SEL; // B拥有增改查权限
$c_access = ADD | UPD; // C拥有增改权限
if($a_access & ADD){
echo 'A拥有添加权限'. "\n";
}
if($b_all & DEL){
}else{
echo 'B没有删除权限'. "\n";
}
//假如要得到没有增加的权限,则
$no_add_access = $a_access ^ ADD;
echo "仅无法增加的权限:" .decbin($no_add_access). "\n";
//输出1110,其中从右到左分别代表ADD UPD SEL DEL,因此最后一个0代表没有增加权限
//要得到C用户没有的所有权限
$c_allow = $a_access ^ $c_access;
echo "C的反权限:" .decbin($c_allow). "\n";
//输出1100,因此C的权限是0011,刚好反过来了
总结一下,以备后用,其实也可以尝试使用linux的权限设计方法,1,2,4来代表增删改,查询暂时不讨论,这样的话7就是全部权限,6就是删改,3就是增删,依次类推,权限设计在后台我们一般都是控制请求资源连接的方式,如MVC里面将所有的控制层action的请求都添加到数据库,然后关联到用户,从而判断,如果结合上面的方法,约定一些action的名称,实现起来会方便很多