abibidu / bitmask
此包已被废弃且不再维护。未建议替代包。
Bitmask类帮助您利用位掩码的全部功能,无需关心位运算操作。它代表了一个类似简单可管理的对象的高级抽象,并像集合一样表现。
v1.3
2017-03-19 19:19 UTC
Requires
- php: >=7.0
Requires (Dev)
- phpunit/phpunit: ^6.0
This package is not auto-updated.
Last update: 2020-09-18 21:24:34 UTC
README
安装
将以下依赖添加到您的composer.json文件中。
{ "require": { "abibidu/bitmask": "^1.0" } }
示例用法
例如,我们有一个可以拥有不同角色的User类。
use Abibidu\Bit\Mask; class User { const ROLE_ADMIN = Mask::FLAG_1; const ROLE_MANAGER = Mask::FLAG_2; const ROLE_CUSTOMER = Mask::FLAG_3; /** * @var Mask */ private $roles; public function __construct() { $this->roles = new Mask(); } public function becomeAdmin() { $this->roles->add(self::ROLE_ADMIN); } public function isAdmin() { return $this->roles->has(self::ROLE_ADMIN); } ... public function isCustomer() { return $this->roles->has(self::ROLE_CUSTOMER); } ... }
现在我们可以创建一个用户。
$user = new User(); $user->becomeAdmin(); // User now has admin role $user->becomeAdmin(); // Throws MaskException because role has been already set // and mask is in strict mode $user->isAdmin(); // Returns true $user->isCustomer(); // Returns false