?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 __co
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 "
/n";
$right->addPower(4);
echo "Power +4: ".$right->power.' | '.decbin($right->power);
echo "
/n";
$right->delPower(2);
echo "Power -2: ".$right->power.' | '.decbin($right->power);
echo "
/n";
echo $right->isPower(bindec(100));
echo "Power is ".bindec(100).": ".$right->power.' | '.decbin($right->power);
echo "
/n";
*/
?>
本文原创发布php中文网,转载请注明出处,感谢您的尊重!