• 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?'是':'否'; ?>
  • 相关阅读:
    [2020BUAA软工助教]助教每周小结(week 9)
    关于强制转会的说明
    Windows更新崩溃记~
    WPF 在DataTemplate定义事件触发器不生效的问题
    Github上不去方法
    TCPListener.AcceptTcpClient阻塞进程退出方法
    Lamada 借助All实现ForEach
    WPF 关于在ContextMenu中绑定带参数的命令
    关于WPF.ICommand.CanExcute
    .NET程序员疫情之下找工作现状
  • 原文地址:https://www.cnblogs.com/qzjpkfj/p/3761872.html
Copyright © 2020-2023  润新知