怎样把位运算|和&用在权限判断里?

zairwolfi 2004-12-20 02:19:49
比如我设定member的权限为2,vip的权限为3,admin的为4。然后怎么用位运算进行判断?
...全文
237 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zairwolfi 2004-12-21
  • 打赏
  • 举报
回复
re
zairwolfi 2004-12-20
  • 打赏
  • 举报
回复
明白。

在用户登陆时候建立的session中,用什么参数表示用户权限好?一般的做法可能是保存用户group名。我觉得还是保存用户的组权限比较合理。

我现在终于明白很久以前唠叨和大家指点给我的位运算怎么用了。
-神仙- 2004-12-20
  • 打赏
  • 举报
回复
这样啊
define('ADMIN',4+2)
用+或者|都可以的
因为1248...里面没有重复的位的
zairwolfi 2004-12-20
  • 打赏
  • 举报
回复
define('ADMIN',4);
if($access & ADMIN)
.......


明白了。如果用户判断为ADMIN的话,怎样给他设定权限呢?他肯定有member权限了。通过递加么?也就是在登陆的时候判断是否是ADMIN,如果是,就|增加权限?
loswing 2004-12-20
  • 打赏
  • 举报
回复
|者相反...两个0则0,其余的为1
$a1$b
1011
0001
---------
1011

权限用
$a 来存可以用的权限信息;
每个位对应一种权限..
$b 是用来判断是否用该权限的标志..

loswing 2004-12-20
  • 打赏
  • 举报
回复
&表示按位于:俩个为1者为1,其余为0

$a = 11; //对应 1011
$b = 1; //对应 0001

$a&$b
1011
0001
----------
0001

判断if($a&$b)===true
-神仙- 2004-12-20
  • 打赏
  • 举报
回复
不可用3
只能用2的N次方
1,2,4,8,16.......
define('ADMIN',4);
if($access & ADMIN)
.......

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧