位运算函数参数多选项
位运算函数参数多选项
const OPT_A = 1;
const OPT_B = 2;
const OPT_C = 4;
const OPT_D = 8;
/**
* @param int $opt
* 判断参数选用函数
* 首先参数必须是2的次方
* 之后2的任何次方 使用或运算 2的任何次方 如 1|2, 2|4 都是一种相加,
* 因为 二进制运算 某个二进制位为1, 二进制位运算结果就是1的原因, 所以二的次方位运算 二的次方位等于直接相加,
* 因此 参数只能是2的次方,否则将不准确
*
* 判断是否选用, 则使用与运算, 2进制运算, 2个数为都为1, 数位才为1,
* 如 选项或运算后 总值为10 则 2&10 = 0010&1010 必定有2, 则该参数必经选用
*/
function option(int $opt)
{
if (OPT_A & $opt) {
echo 'have ' . OPT_A, PHP_EOL;
}
if (OPT_B & $opt) {
echo 'have ' . OPT_B, PHP_EOL;
}
if (OPT_C & $opt) {
echo 'have ' . OPT_C, PHP_EOL;
}
if (OPT_D & $opt) {
echo 'have ' . OPT_D, PHP_EOL;
}
}
option(5);
运算结果
have 1
have 4