通过整数值确定标志

时间:2014-06-16 20:57:18

标签: php integer flags

许多PHP函数使用带有整数值的常量来表示标志。因此,整数值为:

48 = 32,16

51 = 32,16,2,1

我很好奇是否有一个php函数/类或更优雅的方法来反转过程以按上述方式分解整数,甚至更好地确定与函数关联的标志。

我想过设置一个像这样的关联数组:['flag name'=>然后循环遍历数组以添加每个可能组合的值,但这似乎效率很低。特别是当处理多达12个标志时,你就有数百万个组合。

1 个答案:

答案 0 :(得分:2)

您可以使用按位AND来查看是否设置了值:

$a = 23;
$sixteen = 16;
$eight = 8;
if($a & $sixteen) echo "the 16 bit is set";
if($a & $eight) echo "the 8 bit is set";