为什么我应该在PHP中使用位运算/位掩码?

9 浏览
0 Comments

为什么我应该在PHP中使用位运算/位掩码?

我正在为一个脚本开发一个使用 PHP 的用户角色/权限系统。

下面是一个使用位掩码方法来处理权限的代码,我在 phpbuilder.com 上找到的。

下面是一个更简单的版本,可以基本上完成相同的功能,但没有使用位操作。很多人推荐在 PHP 中使用位操作符等设置和其他事情,但我从来没有理解为什么。在下面的代码中,使用第一个代码而不是第二个代码有任何好处吗?

 0) {
        for($i = 0, $n = 0; $i <= $mask; $i = 1 * pow(2, $n), $n++) {
            $end = $i;
        }
        $return[] = $end;
        $mask = $mask - $end;
    }
    sort($return);
    return $return;
}
define('PERMISSION_DENIED', 0);
define('PERMISSION_READ', 1);
define('PERMISSION_ADD',  2);
define('PERMISSION_UPDATE', 4);
define('PERMISSION_DELETE', 8);
//运行函数
// 这个值将从用户的设置 mysql 表中获取
$_ARR_permission = bitMask('5');
if(in_array(PERMISSION_READ, $_ARR_permission)) {
    echo '访问授权。';
}else {
    echo '访问被拒绝。';
}
?>

非位操作版本


0