<?php /* 二進(jìn)制權(quán)限控制PHP類 * 作 者: 多菜鳥 * 郵 箱: kingerq AT QQ DOT com * 來 源:http://blog.csdn.net/kingerq/archive/2009/10/22/4714223.aspx * 創(chuàng)建時間: 2009-10-22 */ class binPower{ var $power = ""; //權(quán)限存貯變量,十進(jìn)制整數(shù) function __construct($power){ $this->power = intval($power); } /* 添加指定權(quán)限 * $right 為2的N次方十進(jìn)制整數(shù),N代表權(quán)限序號 */ function addPower($right){ //利用邏輯或添加權(quán)限 $this->power = $this->power | intval($right); } /* 刪除指定權(quán)限 * $right 為2的N次方十進(jìn)制整數(shù),N代表權(quán)限序號 */ function delPower($right){ //刪除權(quán)限,先將預(yù)刪除的權(quán)限取反,再進(jìn)行與操作 $this->power = $this->power & ~intval($right); } /* 判斷是否存在指定權(quán)限 * $right 為2的N次方十進(jìn)制整數(shù),N代表權(quán)限序號 */ function isPower($right){ //權(quán)限比較時,進(jìn)行與操作,得到0的話,表示沒有權(quán)限 if( ($this->power & intval($right)) == 0 ) return false; return true; } /* * 返回操作后的權(quán)限 */ function returnPower(){ //為了減少存貯位數(shù),返回也可以轉(zhuǎn)化為十六進(jìn)制 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"> <!-- /* * 二進(jìn)制權(quán)限控制JAVASCRIPT函數(shù) * 作 者: 多菜鳥 * 郵 箱: kingerq AT QQ DOT com * 來 源:http://blog.csdn.net/kingerq/archive/2009/10/22/4714223.aspx * 創(chuàng)建時間: 2009-10-22 */ //初始權(quán)限,十進(jìn)制 var power; /* 添加權(quán)限 * right 為2的N次方十進(jìn)制整數(shù),N代表權(quán)限序號 */ function addPower(right){ //利用邏輯或添加權(quán)限 power = power | parseInt(right); } /* 刪除權(quán)限 * right 為2的N次方十進(jìn)制整數(shù),N代表權(quán)限序號 */ function delPower(right){ //刪除權(quán)限,先將預(yù)刪除的權(quán)限取反,再進(jìn)行與操作 power = power & ~parseInt(right); } /* 判斷是否存在指定權(quán)限 * right 為2的N次方十進(jìn)制整數(shù),N代表權(quán)限序號 */ function isPower(right){ //權(quán)限比較時,進(jìn)行與操作,得到0的話,表示沒有權(quán)限 if( (power & parseInt(right)) == 0 ) return false; return true; } /* //示例 power = 5; //addPower(2); //delPower(1) alert(isPower(2)); alert(power);*/ //--> </script>
如對本文有疑問,請?zhí)峤坏浇涣髡搲瑥V大熱心網(wǎng)友會為你解答?。?點(diǎn)擊進(jìn)入論壇
Powered by 365建站網(wǎng) RSS地圖 HTML地圖
copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號