我打算使用二进制系统来处理我的权限,例如:
<?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个不同的权限呢?然后我需要加上一些非常大的数字,这对屁股来说很痛苦。
还有其他办法吗?
任何信息或帮助都会受到极大关注!
答案 0 :(得分:0)
1)使用十六进制来定义常量 - 输入更容易。
2)将单独的权限分解为不同的用户角色。
e.g。
const BLOG_POST = 0x01;
const BLOG_DELETE = 0x02;
const BLOG_UPDATE = 0x04;
const BLOG_READ = 0x08;
const BLOG_SUBSCRIBE = 0x10;
const ADMIN_IS_ADMIN = 0x01;
const ADMIN_ADD_PRODUCT = 0x02;
const ADMIN_DELETE_PRODUCT = 0x04;
const ADMIN_ADD_BLOG = 0x08;
即使你达到大数目,他们仍然很容易打字
const ADMIN_SOME_PERMISSION = 0x1000;
const ADMIN_SOME_PERMISSION2 = 0x2000;