a=time.ctime() #获取当前时间戳对应的易读字符串表示
最近想写一个简单的关于权限处悝的东西之前我也了解过用二进制数的位运算的应用可以出色地完成这个任务。关于二进制数的位运算的应用常见的就是“或、与、非”这三种简单运算了,当然我也查看了下PHP手册,还有“异或、左移、右移”这三个运算记得上初中时数学老师就开始唠叨个不停了,在此我也不想对此运算再作额外的说明直接进入正题。
将权限按照2的N次方来定义值依次类推。为什么要这样子定义呐这样子定义保证了每个权限值(二进制)中只有一个1,而它恰好对应一种权限比如:
权限操作其实涉及到“角色”这个概念。进行权限操作不外乎昰让某个角色赋予某种权限、禁止某种权限和检测某个角色是否拥有某种权限相对于这三个操作。可以用二进制数间的运算操作来很方便的实现
// 给予某种权限用到“位或”运算符 // 禁止某种权限用“位与”和“位非”运算符 // 检测是否拥有某种权限用到“位与”运算符
运用上面的权限操作方法,可以简单地封装成一个权限类和一个角色类
// 创建三个权限:可读、可写、可執行 // 创建另一个角色 Admin,他拥有 User 的所有权限 // 给予 User 可读、可写的权限 // 给予 Admin 可执行的权限另外他还拥有 User 的权限