





















按位与运算符“&”是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位都为1时,结果位才为1。
假设 用户的权限 为 $myPrivilege = 15;
权限表为 array(8 => '增',4 => '改', 2 => '删', 1 => '查' );
8 =》 1 0 0 0
4 =》 0 1 0 0
2 =》 0 0 1 0
1 =》 0 0 0 1我们要知道用户有哪些权限,可以怎么做?
我们都知道 所有数据在计算机中都是二进制表示 15 换算成 二进制。就是 1111
1111 & 1000 只有最高位1相同,所以结果是 1000 即 8 同理 1111 & 0001 = 1 1111 & 0010 = 2 1111 & 0100 = 4 1111 & 1000 = 8
这里写的不太规范,注意二进制和十进制的转换
即用户拥有增删改查的权限。 我们可以展开 15 = 1 + 2 + 4 + 8;
那如果是 9 呢? 即 1 + 8。所以拥有查和赠权限
代码实现:
php
$myPrivilege = 15;
$privilegeArr = array(8=>'增', 4=>'删',2=>'改',1=>'查');
foreach($privilegeArr as $k => $v) {
$k * $myPrivilege && $Pri .= '我有' . $v . "权限<br>";
}
echo $Pri;此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。