不可用3
只能用2的N次方
1,2,4,8,16.......
define('ADMIN',4);
if($access & ADMIN)
.......

解决方案 »

  1.   

    &表示按位于:俩个为1者为1,其余为0 

    $a = 11; //对应 1011
    $b = 1;  //对应 0001$a&$b 
    1011
    0001
    ----------
    0001判断if($a&$b)===true
      

  2.   

    |者相反...两个0则0,其余的为1
    $a1$b
    1011
    0001
    ---------
    1011权限用
    $a 来存可以用的权限信息;
    每个位对应一种权限..
    $b 是用来判断是否用该权限的标志..
      

  3.   

    define('ADMIN',4);
    if($access & ADMIN)
    .......
    明白了。如果用户判断为ADMIN的话,怎样给他设定权限呢?他肯定有member权限了。通过递加么?也就是在登陆的时候判断是否是ADMIN,如果是,就|增加权限?
      

  4.   

    这样啊
    define('ADMIN',4+2)
    用+或者|都可以的
    因为1248...里面没有重复的位的
      

  5.   

    明白。在用户登陆时候建立的session中,用什么参数表示用户权限好?一般的做法可能是保存用户group名。我觉得还是保存用户的组权限比较合理。我现在终于明白很久以前唠叨和大家指点给我的位运算怎么用了。