<?php
//以部门(编号为5)为例,delete 8 upload 4 write 2 read 1
define("mDELETE",8);
define("mUPLOAD",4);
define("mWRITE",2);
define("mREAD",1);
// 则部门经理的权限为
echo mDELETE|mUPLOAD|mWRITE|mREAD ,"<br>";
// 设我只有upload和read权限,则
echo mUPLOAD|mREAD ,"<br>";//判断某人的权限可用,设权限值在$key中
$key = 13;
if($key & mDELETE) echo "有删除权限<br>";
if($key & mUPLOAD) echo "有上传权限<br>";
if($key & mWRITE) echo "有写权限<br>";
if($key & mREAD) echo "有读权限<br>";
?>

解决方案 »

  1.   


    权限1|权限2|权限3|权限4|权限5|....................验证:
    $r=explode("|",权限);
    for($i=0;$i<count($r);$i++)
    {
    if(!(你的权限==$r[$i]))
    {exit();}
    }
      

  2.   

    我的意思不是得到一个字符串,而是[部门ID]与[权限ID]的组合生成一个长整数,可以参加运算,并且是唯一的,可以通过逆运算重新得到它的[部门ID]与[权限ID],这个问题不说了,那么权限免冲突该怎么实现呢?