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();
        }
    }
  • 相关阅读:
    虚拟化(五):vsphere高可用群集与容错(存储DRS是一种可用于将多个数据存储作为单个数据存储群集进行管理的功能)
    vmware 桌面虚拟化 horizon view 介绍(使用微软的RDP协议或vmware 专有的PCoIP协议,连接到虚拟桌面,并且可以使用本地的USB设备、本地存储)
    Delphi之萝莉调教篇
    编写自定义PE结构的程序(如何手写一个PE,高级编译器都是编译好的PE头部,例如MASM,TASM等,NASM,FASM是低级编译器.可以自定义结构)
    localStore的storage事件
    对称密码体制和非对称密码体制
    Span<T>和ValueTuple<T>性能是.Net Core非常关键的特性
    分布式高并发下Actor模型
    公众号及H5支付
    BIOS(Basic Input/Output System)是基本输入输出系统的简称
  • 原文地址:https://www.cnblogs.com/try-better-tomorrow/p/5420561.html
Copyright © 2011-2022 走看看