PHPビット演算によるサイト権限

1390 ワード

                
                      ,      ”    ”  ,&      、|      。        10   ,      2       ,           10     。
         
2^0=1,  2   ”0001″(   ^    ”  ”, :2 0  ,  )

2^1=2,  2   ”0010″
2^2=4,  2   ”0100″
2^3=8,  2   ”1000″
                   &    (          )
 :7=4|2|1 (         7=4+2+1)
  &    ,    7&4、7&2、7&1    ,   7&8    
&、|            ,        
       :
//      -->  :8、  :4、  :2、  :1
define(“mDELETE”,8);
define(“mUPLOAD”,4);
define(“mWRITE”,2);
define(“mREAD”,1);
//vvvvvvvvvvvvv    vvvvvvvvvvvvv
//        (             ),|       ,         
echo mDELETE|mUPLOAD|mWRITE|mREAD ,”
“;//               :8+4+2+1=15
//      upload   read   , 
echo mUPLOAD|mREAD ,”
“;//       、          :4+1=5
/*
*                 ,                      ,         ?
*   :4+2+1=7
*           ?
*/
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//         ,     $key 
/*
*     &   ,
*/
$key = 13;//13=8+4+1
if($key & mDELETE) echo “     
“; //8
if($key & mUPLOAD) echo “     
“; //4
$a=$key & mWRITE; echo “    
“.$a; //    
if($key & mREAD) echo “    
“; //1
?>
  OK,                 ,        。         ,       ,       。            ,   1、2、4、8、16….(         ,              ,               )。                     ,                      。
          ,              ,          ,     ,2    、               。                  。