<?php /* 二进制权限控制PHP类 * 作 者: 多菜鸟 * 邮 箱: kingerq AT QQ DOT com * 来 源:http://blog.csdn.net/kingerq/archive/2009/10/22/4714223.aspx * 创建时间: 2009-10-22 */ class binPower{ var $power = ""; //权限存贮变量,十进制整数 function __construct($power){ $this->power = intval($power); } /* 添加指定权限 * $right 为2的N次方十进制整数,N代表权限序号 */ function addPower($right){ //利用逻辑或添加权限 $this->power = $this->power | intval($right); } /* 删除指定权限 * $right 为2的N次方十进制整数,N代表权限序号 */ function delPower($right){ //删除权限,先将预删除的权限取反,再进行与操作 $this->power = $this->power & ~intval($right); } /* 判断是否存在指定权限 * $right 为2的N次方十进制整数,N代表权限序号 */ function isPower($right){ //权限比较时,进行与操作,得到0的话,表示没有权限 if( ($this->power & intval($right)) == 0 ) return false; return true; } /* * 返回操作后的权限 */ function returnPower(){ //为了减少存贮位数,返回也可以转化为十六进制 return $this->power; } } /* //示例 $right = new binPower(bindec(110011)); echo "Power: ".$right->power.' | '.decbin($right->power); echo "<br>\n"; $right->addPower(4); echo "Power +4: ".$right->power.' | '.decbin($right->power); echo "<br>\n"; $right->delPower(2); echo "Power -2: ".$right->power.' | '.decbin($right->power); echo "<br>\n"; echo $right->isPower(bindec(100)); echo "Power is ".bindec(100).": ".$right->power.' | '.decbin($right->power); echo "<br>\n"; */ ?>
<script language="javascript"> <!-- /* * 二进制权限控制JAVASCRIPT函数 * 作 者: 多菜鸟 * 邮 箱: kingerq AT QQ DOT com * 来 源:http://blog.csdn.net/kingerq/archive/2009/10/22/4714223.aspx * 创建时间: 2009-10-22 */ //初始权限,十进制 var power; /* 添加权限 * right 为2的N次方十进制整数,N代表权限序号 */ function addPower(right){ //利用逻辑或添加权限 power = power | parseInt(right); } /* 删除权限 * right 为2的N次方十进制整数,N代表权限序号 */ function delPower(right){ //删除权限,先将预删除的权限取反,再进行与操作 power = power & ~parseInt(right); } /* 判断是否存在指定权限 * right 为2的N次方十进制整数,N代表权限序号 */ function isPower(right){ //权限比较时,进行与操作,得到0的话,表示没有权限 if( (power & parseInt(right)) == 0 ) return false; return true; } /* //示例 power = 5; //addPower(2); //delPower(1) alert(isPower(2)); alert(power);*/ //--> </script>
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛