首頁  >  文章  >  後端開發  >  詳細介紹PHP巧妙利用位元運算實現網站權限管理的方法

詳細介紹PHP巧妙利用位元運算實現網站權限管理的方法

黄舟
黄舟原創
2017-03-13 16:40:581416瀏覽

下面小編就為大家帶來一篇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 結果為真

$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巧妙利用位元運算實現網站權限管理的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn