查看: 2208|回复: 0

[PHP代码] 利用按位运算符轻松管理权限

发表于 2018-1-3 08:00:00
运算符 按位与

只有两个数都为1时,等于1

  1. 0 & 0 = 0;
  2. 0 & 1 = 0;
  3. 1 & 0 = 0;
  4. 1 & 1 = 1;
复制代码
按位或

两个数其中一个是1,等于1

  1. 0 | 0 = 0;
  2. 0 | 1 = 1;
  3. 1 | 0 = 1;
  4. 1 | 1 = 1;
复制代码
按位异或

两个数不相等则等于1,相等则等于0

  1. 0 ^ 0 = 0;
  2. 0 | 1 = 1;
  3. 1 | 0 = 1;
  4. 1 | 1 = 0;
复制代码
取反
  1. ~0 = 1;
  2. ~1 = 0;
复制代码
用途

使用上面介绍的运算符可以很轻松地实现权限管理

  1. //定义权限
  2. $create = 1;
  3. $update = 2;
  4. $read = 4;
  5. $delete = 8;
  6. $all = $create | $update | $read | $delete;
  7. //定义用户组权限
  8. $admin = $all; //管理员拥有所有权限
  9. $guest = $create | $read; //访客只有添加和读权限
  10. $user = $all & ~$delete; //用户拥有除了删除以外的所有权限
  11. //判断某个组是否拥有某个权限
  12. var_dump($user & $update, $user & $delete, $guest & $update);
  13. #=>int(2) int(0) int(0)
复制代码


回复

使用道具 举报