Простая помощь в создании битовой маски


У меня есть следующие флаги:

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

Я хочу понять, как я могу установить и проверить битовую маску для всех трех флагов (то есть пользователь имеет доступ ко всем 3 битовым маскам).

  • Складываем ли мы все биты вместе?
  • Как насчет простого доступа к 2?

Не совсем уверен, что здесь делать.

 2
Author: Ali, 2016-04-12

1 answers

Если вы хотите, чтобы у пользователя были все разрешения, то or биты.

Например,

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

Только для двух разрешений это одна и та же идея.

$permission_bitmask = $edit_profile | $update_coupon;

Чтобы проверить битовую маску и битовую маску с нужным битом.

$has_edit_profile = ($edit_profile & $permission_bitmask) !== 0;
 2
Author: Chris, 2016-04-12 14:42:16