使用二进制位进行权限控制

<?php
//定义动作的位,实际使用可以放在数据库,使用时再移一下位
define('ACT_QUERY',  1 << 0);  //1
define('ACT_ADD',    1 << 1);  //2
define('ACT_MODIF',  1 << 2);  //4
define('ACT_DEL',    1 << 3);  //8

//检查是否有某一动作的权限,$act是要判断的动作,$my是用户的权限
function check($act,$my){
    return ($act & $my) ? 'Yes' : 'No';  
}

//用户权限,与操作,实际使用时,一般从数据库读取
$my = ACT_QUERY | ACT_ADD | ACT_DEL; 

printf("ACT_QUERY:%s\n",    check(ACT_QUERY,$my));  //Yes
printf("ACT_ADD:%s\n",      check(ACT_ADD,$my));    //Yes
printf("ACT_MODIFY:%s\n",   check(ACT_MODIFY,$my)); //No
printf("ACT_DEL:%s\n",      check(ACT_DEL,$my));    //Yes
?>

转载于:https://my.oschina.net/tim8670/blog/542854

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值