zoukankan      html  css  js  c++  java
  • 一个精简的购物车类

    1. /*
    2. * [原创] 用一个SESSION 实现在精典购物车
    3. * Author: Rock
    4. * Time: 2007-05-01
    5. * 因为一个小程序用到购物车,风有不小不过功能太多。
    6. * 今天就写了一个够自己用的购物车,精简型。
    7. * 大家如果想用,可以根据自己的需求修改功能。
    8.  
    9. 1、添加商品
    10. 2、移除商品
    11. 3、修改商品数量
    12. 4、清空购物车
    13. 5、计算总额
    14. Array(
    15.     [gId_1] => Array (
    16.             [price] => 20
    17.             [number] => 500
    18.         )
    19.     [gId_2] => Array (
    20.             [price] => 20
    21.             [number] => 20
    22.         )
    23. }
    24. */
    25.  
    26. ini_set('error_reporting', E_ALL);
    27.  
    28. class MyCart{
    29.     private $cartName ;
    30.  
    31.     public function __construct($cartName){
    32.         session_start();
    33.         $this->cartName = $cartName;
    34.         if (!isset($_SESSION[$cartName])){
    35.             $_SESSION[$cartName]=array();
    36.         }
    37.     } 
    38.     //add one product
    39.     public function addItem($gId, $gNum = 1){
    40.         if(empty($gId)) die('无此商品');
    41.         if($this->isExistInCart($gId) == false){
    42.             $_SESSION[$this->cartName][$gId]['number'] = $gNum;
    43.             $_SESSION[$this->cartName][$gId]['price'] = $this->getGoodsPrice($gId);
    44.             return true;
    45.         }else{
    46.             echo('已经在您的购物车中了!');
    47.             return false;
    48.         }
    49.     }
    50.     // delete one product
    51.     public function delItem($gId){
    52.         if(empty($gId)) die('删除失败,请重试');
    53.         if($this->isExistInCart($gId) == false) return false;
    54.         unset($_SESSION[$this->cartName][$gId]);
    55.         return true;
    56.     }
    57.     //modify number of one product
    58.     public function editItem($gId, $gNum){
    59.         if(empty($gId)) die('编辑失败,请重试');
    60.         if($this->isExistInCart($gId) == false) return false;
    61.         $_SESSION[$this->cartName][$gId]['number'] = $gNum;
    62.         return true;
    63.     }
    64.  
    65.     //empty cart
    66.     public function emptyCart(){
    67.         //$_SESSION[$this->cartName] = NULL;
    68.         unset($_SESSION[$this->cartName]);
    69.     }
    70.     // get total Price from Cart
    71.     public function totalCartPrice(){
    72.         $tPrice = 0;
    73.         if(!isset($_SESSION[$this->cartName])) return $tPrice;
    74.  
    75.         $arrCart = $_SESSION[$this->cartName];
    76.        
    77.         if(is_array($arrCart) && count($arrCart) > 0){
    78.             foreach($arrCart as $key=>$val){
    79.                 $tPrice += $val['number'] * $val['price'];
    80.             }
    81.         }
    82.         return $tPrice;
    83.     }
    84.     // get total goods number from cart
    85.     public function totalCartNumber(){
    86.         $tNum = 0;
    87.         if(!isset($_SESSION[$this->cartName])) return $tNum;
    88.  
    89.         $arrCart = $_SESSION[$this->cartName];
    90.         if(is_array($arrCart) && count($arrCart) > 0){
    91.             foreach($arrCart as $key=>$val){
    92.                 $tNum += $val['number'];
    93.             }
    94.         }
    95.         return $tNum;
    96.     } 
    97.     // check goodsid is or not exist in cart
    98.     private function isExistInCart($gId){
    99.         return isset($_SESSION[$this->cartName][$gId]) ? true : false ;
    100.     } 
    101.     // get goods price from DB
    102.     private function getGoodsPrice($gId){
    103.         // extends for yourself
    104.         return 10;
    105.     } 
    106.  
    107. }
    108.  
    109. // 测试开始
    110.  
    111. $objCart = new MyCart('myCart');
    112.  
    113. print_r($objCart);echo("\n");
    114.  
    115. $objCart->addItem('10001', 3);
    116. $objCart->addItem('10002');
    117. $objCart->addItem('10003');
    118. $objCart->addItem('10004');
    119. $objCart->editItem('10003', 5);
    120. $objCart->delItem('10004');
    121. //$objCart->emptyCart();
    122. print_r($_SESSION);echo("\n");
    123. echo($objCart->totalCartPrice()."\n");
    124. echo($objCart->totalCartNumber()."\n");
  • 相关阅读:
    crontab机会任务监控
    Python 模块的一般处理
    MySQLdb autocommit
    MySQLdb callproc 方法
    Pthon MySQLdb 的安装
    CentOS7安装MySQL
    Linux中的网络
    Linux中的盘符问题
    类比的方法学习Performance_schema
    MySQL 设置数据库的隔离级别
  • 原文地址:https://www.cnblogs.com/studio313/p/1061356.html
Copyright © 2011-2022 走看看