3
我打算使用二進制系統來處理我的權限,就像這樣:當您擁有二元系統的許多權限時該怎麼辦?
<?php
const POST = 1;
const DELETE = 2;
const UPDATE = 4;
const READ = 8;
const ADMIN = 16;
const ADD_PRODUCT = 32;
const DELETE_PRODUCT = 64;
const ADD_BLOG = 128;
$permission = decbin('5');
if ($permission & POST) { echo "POST <br />"; }
if ($permission & DELETE) { echo "DELETE <br />"; }
if ($permission & UPDATE) { echo "UPDATE <br />"; }
if ($permission & READ) { echo "READ <br />"; }
if ($permission & ADMIN) { echo "ADMIN <br />"; }
?>
少數權限,這將很好地工作。但是,如果我有,可以說,40個不同的權限?然後,我需要加上一些非常大的數字,這是一個痛苦的屁股。
有沒有其他辦法?
任何信息或幫助將大大appriciated!
當你說「二進制」,你真的使用[「位掩碼」(HTTP鍵入: //en.wikipedia.org/wiki/Mask_%28computing%29)。 – nickb 2012-07-23 20:21:40
如果您有40個權限,請勿使用位掩碼來存儲它們,至少不要在您的代碼中。使其數據驅動。 – 2012-07-23 20:22:32
當然,我會將它們存儲在一個數據庫中,這僅僅是一個例子。我忘了提及那個,對不起。您能否更詳細地解釋一下數據驅動的含義? – BlueCola 2012-07-23 20:28:06