您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關怎么在PHP中使用位運算對網站的權限進行管理,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
首先我們先定義4個常量來設定四種權限:
=====================================
define(ADD,1);//增加數據庫記錄的權限
define(UPD,2);//修改數據庫記錄的權限
define(SEL,4);//查找數據庫記錄的權限
define(DEL,8);//刪除數據庫記錄的權限
=====================================
接下來假設有3個用戶:
A用戶擁有ADD-UPD-SEL-DEL四個權限,用位或運算計算A的權限總值
$a_all=ADD|UPD|SEL|DEL;//$all=15 可以注意到這個值和加法的結果是一樣的
B用戶擁有ADD-UPD-SEL三個權限,用位或運算計算B的權限總值
$b_all=ADD|UPD|SEL;//$all=7 這個值和加法的結果又是一樣的
C用戶擁有ADD-UPD兩個權限,用位或運算計算C的權限總值
$c_all=ADD|UPD;//$all=3 這個值和加法的結果還是一樣的
=====================================
接下來我們用位與做運算
$a_all&ADD 結果為真
$a_all&UPD 結果為真
$a_all&SEL 結果為真
$a_all&DEL 結果為真
=====================================
$b_all&ADD 結果為真
$b_all&UPD 結果為真
$b_all&SEL 結果為真
$b_all&DEL 結果為假
=====================================
$c_all&ADD 結果為真
$c_all&UPD 結果為真
$c_all&SEL 結果為假
$c_all&DEL 結果為假
=====================================
發現奧秘沒有?
1、當權限總值和沒有的那個權限做位與運算,結果為假
2、權限的值都是2的次方
知道了這兩點權限的處理就變得簡單了吧,只要在每次執行涉及權限操作的時候把用戶當前的權限總值和當前操作需要的權限做位與運算。如果結果為真執行,為假做報錯處理就行啦(當然也不一定時報錯,你可以自己設計沒有權限時的程序)。
關于怎么在PHP中使用位運算對網站的權限進行管理就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。