变量的值下面列出帮助理解这行PHP是做
$v['flag'] = 10
kPOSTAGE_HOME = 8
所以没有赫克以下行做什么?
if(($v['flag']&kPOSTAGE_HOME)==kPOSTAGE_HOME) {
//do something
}
变量的值下面列出帮助理解这行PHP是做
$v['flag'] = 10
kPOSTAGE_HOME = 8
所以没有赫克以下行做什么?
if(($v['flag']&kPOSTAGE_HOME)==kPOSTAGE_HOME) {
//do something
}
&设置位设置。在这两个值一些二进制数学:
00001010 | 10
& 00001000 | 8
---------------
= 00001000 | 8
所以10&8
回报8和8 == 8原因是为了检查该位掩码的标志是否被设置...
它会检查$v['flag']
位模式是否有它的第3位设置。
它会在$v['flag']
中检查第三位何时开启。 &
是“按位和”运算符,8的二进制是"00000100"
,因此您将执行“按位”和除第三位以外的所有位都将为零,因此如果第三位打开,它将保留,因此您需要进一步检查平等。
它屏蔽变量中的'8'位。数字“10”以10进制表示== == 1001以二进制表示,并且8 == 1000.所以这意味着“确定1001是否设置了1000”位?“答案是'是'
而且,对于更好。可读性可以简化为以下几种:
if ($v['flag'] & kPOSTAGE_HOME) {