Php 通过整数值确定标志

Php 通过整数值确定标志,php,integer,flags,Php,Integer,Flags,许多PHP函数使用带有整数值的常量作为标志。因此,整数值为: 48=32,16 51=32,16,2,1 我很好奇,是否有一个php函数/类或者一种更优雅的方法可以像我上面所做的那样反转分解整数的过程,甚至更好地确定与函数相关联的标志 我曾经考虑过这样设置一个关联数组:['flag name'=>int],然后在数组中循环,将每个可能组合的值相加,但这似乎效率很低。特别是当处理多达12个标志时,则有数百万个组合。您可以使用按位和查看是否设置了值: $a = 23; $sixteen = 16;

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

48=32,16

51=32,16,2,1

我很好奇,是否有一个php函数/类或者一种更优雅的方法可以像我上面所做的那样反转分解整数的过程,甚至更好地确定与函数相关联的标志


我曾经考虑过这样设置一个关联数组:['flag name'=>int],然后在数组中循环,将每个可能组合的值相加,但这似乎效率很低。特别是当处理多达12个标志时,则有数百万个组合。

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

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

位和运算符可能在这里被证明是有用的,考虑PHP是如何设置和使用错误级别的reporting@MarkBaker,谢谢,我现在要读一读位运算符。太好了。这是一个比我想象的要好得多的解决方案。