PHP会员权限: 交叉多类型的控制(上)知识点


1、会员交叉权限控制实现的原理

2、利用PHP位运算二进制实现权限控制


1、会员交叉权限控制实现的原理

如图所示


2、利用PHP位运算二进制实现权限控制


在PHP中要判断一个数在某些数范围内就可以使用 & 运算符。


& 是位运算,不是 && 逻辑运算 (位运算符:&  |  ^  ~)


例如:7=4|2|1   ===》   $sy = 4|2|1


这里的或是指的可以能包含的内容值,在位运算里其实可以简单理解成 7=4+2+1,用 & 来操作,可以知道7&4、7&2、7&1都是真的,而如果7&8则是假的。我们还可以用^ 来从包含的值内去除:如 $ny = $sy ^ 2  


这样一来,$ny 只有 4|1 如果做判断也就只有 $ny&4、$ny&1


看下面一个例子:

define("LIS", 1);
  define("ADD", 2);
  define("DEL", 4);
  define("UPD", 8);
  define("REA", 16);
  
  $all_full  = LIS |  ADD | DEL | UPD | REA;
  
  $all_sub = LIS | ADD | DEL;