php 位運算許可權問題

2022-03-25 04:51:30 字數 1904 閱讀 3674

許可權問題比如:linux角色許可權 可讀 可寫 可執行 ,許可權二進位制分別是100 010 001,十進位制就是4 2 1,資料庫許可權欄位若為state 預設為0,通常許可權都是多選框形式,如下圖:

>可執行

label

>

3div

>

4<

br>

5<

div

class

="row"

style

=" margin-left:24px;"

>

6<

input

type

="checkbox"

id="player_state2"

value

="1"

name

="states"

class

="permission_item"

/>

<

label

for="player_state2"

>可寫

label

>

7div

>

8<

br>

9<

div

class

="row"

style

=" margin-left:24px;"

>

10<

input

type

="checkbox"

id="player_state3"

value

="2"

name

="states"

class

="permission_item"

/>

<

label

for="player_state3"

>可讀

label

>

11div

>

view code

接下來我們提交取到的值就是$query['state'],是乙個陣列,array([0] => 1 [1] => 2 ),接下來就應該修改許可權值,首先要獲取乙個值,這個值就要用到位運算<<, 每次左移都乘以2

if (!empty($query['states'])) 

}

本來$currstate 輸出值為2 6, 6便是這個最終的狀態值

而如果想要獲取當前的狀態,如

//

$charstate 為獲取到的資料庫值

$state1 = $charstate & 0x1;

$state2 = $charstate & 0x2;

$state3 = $charstate & 0x4;

這的&

得到的$state1 $state2 $state3 分別為三種狀態值,有更好方法歡迎補充.

PHP位運算許可權設計

首先將許可權按照2的次方來定義值,依次類推 define add 1 增加許可權 define upd 2 修改許可權 define sel 4 查詢許可權 define del 8 刪除許可權 a access add upd sel del a擁有增刪改查許可權 b access add upd...

php位運算許可權管理

簡單許可權類 class peak auth 本類不允許物件複製的操作 public function clone 設定許可權的詳細資訊 param string authmessage public function setauthmessage authmessage 獲取權名稱 return ...

php位運算的許可權設計

位運算的運算物件是二進位制位,速度快,效率高,而且節省空間,位運算做許可權控制也相當的靈活。但是位運算有很大的侷限,位移不能超過32次,這就要求許可權的數量不超過32中。將許可權按照2的n次方來定義值,一次類推。為什麼要這個樣子定義,這個樣紙的定義是為了保證每個許可權值 二進位制 中只有乙個1,而它...