大神,高帅富,请绕过
作为一个屌丝程序员,只有在蓝翔技校上课的时候才会用到这俩操作符,有时候想着,或许只有白富美请教高帅富的时候,才能知道这两个高端的操作符的具体用处
这俩操作符大家都知道什么意思
按位于,比如 3 & 4 转换成二进制 011 & 100 每位都于操作那得到 000 =>0
按位或,比如 3 | 4 转换成二进制 011 & 100 每位都于操作那得到 111 => 7
大概屌丝们在学校刷碗的时候就学到了上边那点东西,至于有什么用,大概写书的人也不知道
现在屌丝有福了
第一个基础用法,当配置文件用,场景,在一个菜单上有4个按钮,不同的地方需要选择性的显示,屌丝们会想,用if去判断好了,
当然可以,但是不想当高帅富的屌丝不是好屌丝,还有更好,更装逼的方法没?高帅富说了,有!
我们可以搞一个4位的二进制,比如 1010,四位分别对应着四个按钮,该位为1那么显示,该为0就不显示
如果要显示第一个,那就是1000 如果显示第二个那就是0100 一次类推,如果显示第一和第三个,那就是1010
如果要判断这个按钮是否要显示,那么只要把传进来的数字和对应的配置数字&操作,结果大于0,那么说明需要显示,比如判断第一个按钮,就是&1000
现在我们以php程序为例,先定义几个常量
define("FIRST_BTN", 8);//二进制1000
define("SECOND_BTN", 4);//二进制0100
define("SECOND_BTN", 2);//二进制0010
define("SECOND_BTN", 1);//二进制0001
然后再来个函数,用来控制按钮的显示
function show_btn($config) {
//先将按钮全部隐藏
//隐藏代码
if($config & FIRST_BTN) {
//显示第一个
}
if($config & SECOND_BTN) {
//显示第二个
}
if($config & THIRD_BTN) {
//显示第三个
}
if($config & FORTH_BTN) {
//显示第四个
}
}
函数写好了,咋用?
如果你要显示第二个按钮:
show_btn(SECOND_BTN);
如果你要显示第三和第四个按钮,咋办?上边不是还有|操作符从来没用么,yes,你可能想到了
show_btn(THIRD_BTN | FORTH_BTN);
全部都显示
show_btn(FIRST_BTN | SECOND_BTN | THIRD_BTN | FORTH_BTN);
类似的场景有很多,比如权限控制,一篇文章有增删改查四个权限,是否也可以用在这儿呢?