要判斷一個數在某些數范圍內就可以使用 & 運算符(數值從上面的表中得來),可以知…
權限值是這樣的:
讀: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;
對于一般簡單的權限設計這樣使用足夠了。