PHP位運算許可權設計

2021-06-10 22:27:23 字數 898 閱讀 1269

<?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 | sel; // b擁有增改查許可權

$c_access = add | upd; // c擁有增改許可權

if($a_access & add)

if($b_all & del)else

//假如要得到沒有增加的許可權,則

$no_add_access = $a_access ^ add;

echo "僅無法增加的許可權:" .decbin($no_add_access). "\n";

//輸出1110,其中從右到左分別代表add upd sel del,因此最後乙個0代表沒有增加許可權

//要得到c使用者沒有的所有許可權

$c_allow = $a_access ^ $c_access;

echo "c的反許可權:" .decbin($c_allow). "\n";

//輸出1100,因此c的許可權是0011,剛好反過來了

總結一下,以備後用,其實也可以嘗試使用linux的許可權設計方法,1,2,4來代表增刪改,查詢暫時不討論,這樣的話7就是全部許可權,6就是刪改,3就是增刪,依次類推,許可權設計在後台我們一般都是控制請求資源連線的方式,如mvc裡面將所有的控制層action的請求都新增到資料庫,然後關聯到使用者,從而判斷,如果結合上面的方法,約定一些action的名稱,實現起來會方便很多

php位運算的許可權設計

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

php位運算許可權管理

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

php 位運算許可權問題

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