phoenixrvd / bitmask
bitmask 工具包
1.0.2
2018-06-21 22:59 UTC
Requires
- php: >=7.0
Requires (Dev)
- ext-xdebug: *
- codeclimate/php-test-reporter: dev-master
- phpunit/phpunit: ^6.1
This package is auto-updated.
Last update: 2024-09-12 05:28:53 UTC
README
在 PHP 中,一个数字通常是 4 字节长。这意味着一个数字实际上使用了 32 位内部存储。
在这种情况下,32 个布尔值可以存储为单个整数。问题是“魔数”。
安装
使用以下命令安装最新版本:
composer require phoenixrvd/bitmask
示例
没有此 API before.php
<?php class StateMap { const OPTION_1 = 1; const OPTION_2 = 2; const OPTION_4 = 4; // What is next ???? } // Check for Active Feature $activeFeatures = 6; if(($activeFeatures & StateMap::OPTION_1) === StateMap::OPTION_1){ // Do this } if(($activeFeatures & StateMap::OPTION_2) !== StateMap::OPTION_2) { // Do this } // Activation and deactivation from options ist not 'Human Readable'.
使用此 API after.php
<?php class StateMap { const OPTION_1 = 0; const OPTION_2 = 1; const OPTION_4 = 2; const OPTION_5 = 3; const OPTION_6 = 4; } // Check for Active Feature $activeFeatures = (new \PhoenixRVD\Bitmask\BitmaskFactory())->fromInt(6); if($activeFeatures->isOn(StateMap::OPTION_1)){ // Do this } if($activeFeatures->isOff(StateMap::OPTION_2)) { // Do that } // Activate options $activeFeatures->on(StateMap::OPTION_5, StateMap::OPTION_6); // Deactivate options $activeFeatures->off(StateMap::OPTION_4, StateMap::OPTION_1);
测试
composer bitmask:test
版权和许可证
代码在 MIT 许可证 下发布。