首页 > 代码库 > php中位运算的应用:货品的状态
php中位运算的应用:货品的状态
效果如下图:
分析:用一个整数的二进制可以记录32状态
00000000 00000000 00000000 00000000 >>=0
从右往左保存这三个的状态:
精品选中,第一位设置为1: 00000000 00000000 00000000 00000001 >>=1
新品选中,第一位设置为1: 00000000 00000000 00000000 00000010 >>=2
热销选中,第一位设置为1: 00000000 00000000 00000000 00000100 >>=4
定义一个初始状态就是都不选中的:$status=0;
这三状态都选中是:00000000 00000000 00000000 00000111
$status=0;//初始状态 if($_SERVER[‘REQUEST_METHOD‘]==‘POST‘){ $is_best=isset($_POST[‘is_best‘])?$_POST[‘is_best‘]:0; $is_new=isset($_POST[‘is_new‘])?$_POST[‘is_new‘]:0; $is_hot=isset($_POST[‘is_hot‘])?$_POST[‘is_hot‘]:0; $status=$status|$is_best|$is_new|$is_hot; } ?> <form action="<?php $_SERVER[‘PHP_SELF‘];?>" method="post"> 商品状态:<input type="checkbox" name="is_best" value="http://www.mamicode.com/1" <?php echo $status&1?‘checked‘:‘‘; ?> />精品 <input type="checkbox" name="is_new" value="http://www.mamicode.com/2" <?php echo $status&2?‘checked‘:‘‘; ?> />新品 <input type="checkbox" name="is_hot" value="http://www.mamicode.com/4" <?php echo $status&4?‘checked‘:‘‘; ?> />热销 <br/> <input type="submit" value="http://www.mamicode.com/提交" /> </form> <?php echo decbin($status); ?> <br/>
精品是否:<?php echo $status&1?‘是‘:‘否‘; ?><br/> 新品是否:<?php echo $status&2?‘是‘:‘否‘; ?><br/> 热销是否:<?php echo $status&4?‘是‘:‘否‘; ?>
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。