权限值是这样的:
读:2^0=1,相应2进数为”0001″(在这里^我表示成”次方”,即:2的0次方,下同)
写:2^1=2,相应2进数为”0010″
传:2^2=4,相应2进数为”0100″
删:2^3=8,相应2进数为”1000″
要判断一个数在某些数范围内就可以使用 & 运算符(数值从上面的表中得来),可以知道7&4、7&2、7&1都是为真,而如果7&8则是为假。
<?php $key = 13;//13=8+4+1,二进制数为1101 if($key & 8) echo '有删除权限<br>'; if($key & 4) echo '有上传权限<br>'; if($key & 2) echo '有写入权限<br>'; if($key & 1) echo '有只读权限<br>'; ?>
SELECT * FROM user WHERE `权限` & 4 > 0;
对于一般简单的权限设计这样使用足够了。