首页 > 代码库 > 按位或和按位与项目中的实际运用

按位或和按位与项目中的实际运用

在搞php的时候发现| 和 & 的运算符使用的很巧妙,在这与大家分享下

按位运算符之 | 和 & 简化checkbox复选框存取值问题。把checkbox的name属性设置成name="certified_type[]"。循环把certified_type内的所有元素的value(value设定为1,2,4以此类推2的n次方,n>=0)进行按位或的运算后,最后结果以一个int型存入数据库中。

 

数据库中取出的结果只需要对其进行按位与的运算就可以定位到各自复选框中的状态。 //例如原来有value= http://www.mamicode.com/1,2,4 这3个checkbox ,如果选中1和4,则我们获取到的certified_type[]的值是1,4,进行第一步的循环按位或运算后得到的值是

001            1

100            4

-----|

101            5

换成10进制也就是5,最后存入数据库的值就是5,取值的时候只需要用5对当前需要判定状态的checkbox的value值进行按位与操作,当为true的时候则为选中,例如5&1为true的时候就是value=http://www.mamicode.com/1的这个checkbox是选中状态的,而5&2为false,则表示value为2的这个box没选中。

101            5       101             

001            1       010

-----&               -----&

001            1 true   000    false 

按位或和按位与项目中的实际运用