在MySQL和PHP中使用二进制表示标志

时间:2015-10-12 14:33:14

标签: php mysql binary bitwise-operators

我们说我有以下可以附加给客户的标志:

1 Hot
2 Urgent
4 Sensitive
8 Confidential

在我的表中,我将活动客户存储为6的整数。

我认为以这种方式做事会为我节省参考表并使查询更快。

如何让PHP解释6,例如点亮客户和活动图标?

1 个答案:

答案 0 :(得分:1)

按位运算符可以解决这个问题:

$flag = 6; // value from the database
$customer = 2; // constant value
$active = 4; // constant value

if ($flag & $customer)
{
    print 'I am a customer.';
}

if($flag & $active)
{
    print 'I am active.';
}

我同意@GordonLinoff。真的要考虑这是否是你想要的,因为它以后不容易改变,并且它可能允许出现意想不到的情况。