У меня есть следующие флаги:
- edit profile => 1
- update coupon => 2
- update news articles => 4
Я хочу понять, как я могу установить и проверить битовую маску для всех трех флагов (то есть, у пользователя есть доступ ко всем 3-битным маскам).
Не совсем уверен, что здесь делать.
Если вы хотите, чтобы у пользователя были все разрешения, тогда or
биты.
например
$permission_bitmask = $edit_profile | $update_coupon | $update_news_articles;
Только для двух разрешений это одна и та же идея.
$permission_bitmask = $edit_profile | $update_coupon;
Чтобы проверить битовую маску и битовую маску с нужным вам битом.
$has_edit_profile = ($edit_profile & $permission_bitmask) !== 0;
Других решений пока нет …