zoukankan      html  css  js  c++  java
  • 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="1" <?php echo $status&1?'checked':''; ?> />精品
        <input type="checkbox" name="is_new" value="2" <?php echo $status&2?'checked':''; ?> />新品
        <input type="checkbox" name="is_hot" value="4" <?php echo $status&4?'checked':''; ?> />热销
        <br/>
        <input type="submit" value="提交" />
    </form>
    <?php echo decbin($status); ?>
    <br/>

    精品是否:<?php echo $status&1?'是':'否'; ?><br/> 新品是否:<?php echo $status&2?'是':'否'; ?><br/> 热销是否:<?php echo $status&4?'是':'否'; ?>
  • 相关阅读:
    Phpstorm+Xdebug配置
    ThinkPHP5.0---URL访问
    Thinkphp5创建控制器
    ThinkPHP5.0的安装
    网页动态背景——随鼠标变换的动态线条
    git SSH
    [go] 循环与函数
    svg make a face
    Hello Vizhub
    Beetlsql自定义生成entity,mapper,md代码
  • 原文地址:https://www.cnblogs.com/qzjpkfj/p/3761872.html
Copyright © 2011-2022 走看看