简单的位掩码帮助

时间:2016-04-12 14:39:31

标签: php bit

我有以下标志:

- edit profile => 1
- update coupon => 2
- update news articles => 4

我想了解如何设置和检查所有三个标志的位掩码(即,用户可以访问所有3位掩码)。

  • 我们将所有位加在一起吗?
  • 如果只能访问2?

不太清楚该怎么做。

1 个答案:

答案 0 :(得分:2)

如果您希望用户拥有所有权限,则or位。

e.g。

$permission_bitmask = $edit_profile | $update_coupon | $update_news_articles;

只有两个权限,这是相同的想法。

$permission_bitmask = $edit_profile | $update_coupon;

检查位掩码和所需位的位掩码。

$has_edit_profile = ($edit_profile & $permission_bitmask) !== 0;