计算值的索引号 - 按位排序

时间:2013-07-22 10:55:11

标签: php cakephp-2.1

我想使用按位运算符为订阅页面提供用户可见性。如果用户对页面的许可是60,那么他将只能看到那些在2,3,4,5上设置可见性的订阅页面(例如,2 ^ 2 = 4,2 ^ 3 = 8,2 ^ 4 = 16,2 ^ 5 = 32所以32 + 16 + 4 + 2 = 60所以他被允许查看权限id = 2,3,4,5的页面

   public function permission($perm)
   {
     $this->permission = ~$perm & $this->permission;
   }

我使用了这段代码,但它没用 我需要帮助和建议.......谢谢:)

1 个答案:

答案 0 :(得分:2)

添加权限:

$this->permission |= $perm;

检查是否设置了权限:

$is_permitted = (bool)($this->permission & $perm);

检查设置了哪些权限:

for ($permissions = array(), $i = ceil(log($this->permission, 2) + 0.1) /* floating point imprecision */; $i >= 0; $i--)
    if ($this->permission & (1 << $i))
        $permissions[] = $i;