zoukankan      html  css  js  c++  java
  • php 实现购物车

     

    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    <?php
    class Cart{
        public function Cart() {
            if(!isset($_SESSION['cart'])){
                $_SESSION['cart'] = array();
            }
        }
     
        /*
        添加商品
        param int $id 商品主键
              string $name 商品名称
              float $price 商品价格
              int $num 购物数量
        */
        public  function addItem($id,$name,$price,$num,$img) {
            //如果该商品已存在则直接加其数量
            if (isset($_SESSION['cart'][$id])) {
                $this->incNum($id,$num);
                return;
            }
            $item = array();
            $item['id'] = $id;
            $item['name'] = $name;
            $item['price'] = $price;
            $item['num'] = $num;
            $item['img'] = $img;
            $_SESSION['cart'][$id] = $item;
        }
     
        /*
        修改购物车中的商品数量
        int $id 商品主键
        int $num 某商品修改后的数量,即直接把某商品
        的数量改为$num
        */
        public function modNum($id,$num=1) {
            if (!isset($_SESSION['cart'][$id])) {
                return false;
            }
            $_SESSION['cart'][$id]['num'] = $num;
        }
     
        /*
        商品数量+1
        */
        public function incNum($id,$num=1) {
            if (isset($_SESSION['cart'][$id])) {
                $_SESSION['cart'][$id]['num'] += $num;
            }
        }
     
        /*
        商品数量-1
        */
        public function decNum($id,$num=1) {
            if (isset($_SESSION['cart'][$id])) {
                $_SESSION['cart'][$id]['num'] -= $num;
            }
     
            //如果减少后,数量为0,则把这个商品删掉
            if ($_SESSION['cart'][$id]['num'] <1) {
                $this->delItem($id);
            }
        }
     
        /*
        删除商品
        */
        public function delItem($id) {
            unset($_SESSION['cart'][$id]);
        }
         
        /*
        获取单个商品
        */
        public function getItem($id) {
            return $_SESSION['cart'][$id];
        }
     
        /*
        查询购物车中商品的种类
        */
        public function getCnt() {
            return count($_SESSION['cart']);
        }
         
        /*
        查询购物车中商品的个数
        */
        public function getNum(){
            if ($this->getCnt() == 0) {
                //种数为0,个数也为0
                return 0;
            }
     
            $sum = 0;
            $data = $_SESSION['cart'];
            foreach ($data as $item) {
                $sum += $item['num'];
            }
            return $sum;
        }
     
        /*
        购物车中商品的总金额
        */
        public function getPrice() {
            //数量为0,价钱为0
            if ($this->getCnt() == 0) {
                return 0;
            }
            $price = 0.00;
            $data = $_SESSION['cart'];
            foreach ($data as $item) {
                $price += $item['num'] * $item['price'];
            }
            return sprintf("%01.2f", $price);
        }
     
        /*
        清空购物车
        */
        public function clear() {
            $_SESSION['cart'] = array();
        }
    }
  • 相关阅读:
    火炬之光模型导出(Unity载入火炬之光的模型)
    树的左旋与右旋
    javaEE开发之导出excel工具类
    STL algorithm算法is_permutation(27)
    学做衣服论坛 -服装DIY教程,缤纷服装网,裁剪教程,家用缝纫机,买布料
    傲娇_百度百科
    《失败不是成功之母》阅读理解
    失败是不是成功之母
    正则表达式多语种的web版本
    date tod = boost::gregorian::day_clock::local_day(); //当前日期
  • 原文地址:https://www.cnblogs.com/try-better-tomorrow/p/5420561.html
Copyright © 2011-2022 走看看