当前位置:首页 > PHP教程 > php类库 > 列表

PHP实现的比较完善的购物车类

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-01 19:20:23 浏览: 评论:0 

这篇文章主要介绍了PHP实现的比较完善的购物车类,包含了针对商品常见的增加、删除与修改等功能,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了PHP实现的比较完善的购物车类。分享给大家供大家参考。具体实现方法如下:

前不久做到一个项目需要用到购物车,考虑到可能经常用到,所以把它封装成一个类,以便以后调用,感兴趣的读者可以简单的把这个类稍微修改一下就可以用在自己的程序里了.代码如下:

  1. <?php 
  2. /*****************************************************************************/ 
  3. /*                                                                           */ 
  4. /* file type:      包含文件,建议后缀为.inc                                  */ 
  5. /*                                                                           */ 
  6. /* file name:      cart.inc                                                  */ 
  7. /*                                                                           */ 
  8. /* Description:    定义一个购车类                                            */ 
  9. /*                                                                           */ 
  10. /* Func list :     class cart                                                */ 
  11. /*                                                                           */ 
  12. /* author :        bigeagle                                                  */ 
  13. /*                                                                           */ 
  14. /*                                                                           */ 
  15. /*****************************************************************************/ 
  16.  
  17. //定义本文件常量 
  18. define("_CART_INC_" , "exists") ; 
  19.  
  20. /*购物车类*/ 
  21. class TCart 
  22.  
  23.   var $SortCount;            //商品种类数 
  24.   var $TotalCost;            //商品总价值 
  25.  
  26.   var $Id;                   //每类商品的ID(数组) 
  27.   var $Name;                 //每类商品的名称(数组) 
  28.   var $Price;                //每类商品的价格(数组) 
  29.   var $Discount;             //商品的折扣(数组) 
  30.   var $GoodPrice ;           //商品的优惠价格(数组) 
  31.   var $Count;                //每类商品的件数(数组) 
  32.   var $MaxCount ;            //商品限量(数组) 
  33.  
  34.   //******构造函数 
  35.   function TCart() 
  36.   { 
  37.    $this->SortCount=0; 
  38.  
  39.    session_start(); //初始化一个session 
  40.    session_register('sId'); 
  41.    session_register('sName'); 
  42.    session_register('sPrice'); 
  43.    session_register('sDiscount'); 
  44.    session_register('sGoodPrice') ; 
  45.    session_register('sCount') ; 
  46.    session_register('sMaxCount') ; 
  47.  
  48.    $this->Update(); 
  49.    $this->Calculate(); 
  50.   } 
  51.  
  52.   //********私有,根据session的值更新类中相应数据 
  53.   function Update() 
  54.   { 
  55.     global $sId,$sName,$sPrice,$sCount,$sDiscount,$sMaxCount,$sGoodPrice
  56.  
  57.    if(!isset($sIdor !isset($sNameor !isset($sPrice
  58.       or !isset($sDiscountor !isset($sMaxCount
  59.       or !isset($sGoodPriceor !isset($sCount)) return
  60.  
  61.    $this->Id        =$sId
  62.    $this->Name      =$sName
  63.    $this->Price     =$sPrice
  64.    $this->Count     =$sCount
  65.    $this->Discount  = $sDiscount ; 
  66.    $this->GoodPrice = $sGoodPrice ; 
  67.    $this->MaxCount  = $sMaxCount ; 
  68.  
  69.    //计算商品总数 
  70.    $this->SortCount=count($sId); 
  71.  
  72.   } 
  73.  
  74.   //********私有,根据新的数据计算每类商品的价值及全部商品的总价 
  75.   function Calculate() 
  76.   { 
  77.    for($i=0;$i<$this->SortCount;$i++) 
  78.    { 
  79.      /*计算每件商品的价值,如果折扣是0 ,则为优惠价格*/ 
  80.      $GiftPrice = ($this->Discount[$i] == 0 ? $this->GoodPrice : 
  81.                    ceil($this->Price[$i] * $this->Discount[$i])/100 ); 
  82.      $this->TotalCost += $GiftPrice * $this->Count[$i] ; 
  83.    } 
  84.   } 
  85.  
  86.   //**************以下为接口函数 
  87.  
  88.   //*** 加一件商品 
  89.   // 判断是否蓝中已有,如有,加count,否则加一个新商品 
  90.   //首先都是改session的值,然后再调用update() and calculate()来更新成员变量 
  91.   function Add($a_ID , $a_Name , $a_Price , $a_Discount , 
  92.                $a_GoodPrice , $a_MaxCount , $a_Count
  93.   { 
  94.    global $sId , $sName , $sCount , $sPrice , $sDiscount , 
  95.           $sGoodPrice , $sMaxCount ; 
  96.  
  97.    $k=count($sId); 
  98.    for ($i=0; $i<$k$i++) 
  99.    { //先找一下是否已经加入了这种商品 
  100.      if($sId[$i]==$a_ID
  101.      { 
  102.       $sCount[$i] += $a_Count ; 
  103.       break
  104.      } 
  105.    } 
  106.    if($i >= $k
  107.    { //没有则加一个新商品种类 
  108.     $sId[]        = $a_ID
  109.     $sName[]      = $a_Name
  110.     $sPrice[]     = $a_Price
  111.     $sCount[]     = $a_Count
  112.     $sGoodPrice[] = $a_GoodPrice ; 
  113.     $sDiscount[]  = $a_Discount ; 
  114.     $sMaxCount[]  = $a_MaxCount ; 
  115.    } 
  116.  
  117.    $this->Update(); //更新一下类的成员数据 
  118.    $this->Calculate(); 
  119.   } 
  120.  
  121.   //移去一件商品 
  122.   function Remove($a_ID
  123.   { 
  124.    global $sId , $sName , $sCount , $sPrice , $sDiscount , 
  125.           $sGoodPrice , $sMaxCount ; 
  126.  
  127.    $k = count($sId); 
  128.    for($i=0; $i < $k$i++) 
  129.    { 
  130.      if($sId[$i] == $a_ID
  131.      { 
  132.        $sCount[$i] = 0 ; 
  133.        break
  134.      } 
  135.    } 
  136.  
  137.    $this->Update(); 
  138.    $this->Calculate(); 
  139.   } 
  140.  
  141.   //改变商品的个数 
  142.   function ModifyCount($a_i,$a_Count
  143.   { 
  144.    global $sCount
  145.  
  146.    $sCount[$a_i] = $a_Count ; 
  147.    $this->Update(); 
  148.    $this->Calculate(); 
  149.   } 
  150.  
  151.   /*************************** 
  152.   清空所有的商品 
  153.   *****************************/ 
  154.   function RemoveAll() 
  155.   { 
  156.    session_unregister('sId'); 
  157.    session_unregister('sName'); 
  158.    session_unregister('sPrice'); 
  159.    session_unregister('sDiscount'); 
  160.    session_unregister('sGoodPrice') ; 
  161.    session_unregister('sCount') ; 
  162.    session_unregister('sMaxCount') ; 
  163.    $this->SortCount = 0 ; 
  164.    $this->TotalCost = 0 ; 
  165.   } 
  166.  
  167.   //是否某件商品已在蓝内,参数为此商品的ID 
  168.   function Exists($a_ID
  169.   { 
  170.    for($i=0; $i<$this->SortCount; $i++) 
  171.    { 
  172.      if($this->Id[$i]==$a_IDreturn TRUE; 
  173.    } 
  174.    return FALSE; 
  175.   } 
  176.  
  177.   //某件商品在蓝内的位置 
  178.   function IndexOf($a_ID
  179.   { 
  180.    for($i=0; $i<$this->SortCount; $i++) 
  181.    { 
  182.     if($this->Id[$i]==$idreturn $i
  183.    } 
  184.    return 0; 
  185.   } 
  186.  
  187.   //取一件商品的信息,主要的工作函数 
  188.   //返回一个关联数组, 
  189.   function Item($i
  190.   { 
  191.    $Result[id]        = $this->Id[$i]; 
  192.    $Result[name]      = $this->Name[$i]; 
  193.    $Result[price]     = $this->Price[$i]; 
  194.    $Result[count]     = $this->Count[$i]; 
  195.    $Result[discount]  = $this->Discount[$i] ; 
  196.    $Result[goodprice] = $this->GoodPrice[$i] ; 
  197.    $Result[maxcount]  = $this->MaxCount[i] ; 
  198.    return $Result
  199.   } 
  200.  
  201.   //取总的商品种类数 
  202.   function CartCount() 
  203.   { 
  204.    return $this->SortCount; 
  205.   } 
  206.  
  207.   //取总的商品价值 
  208.   function GetTotalCost() 
  209.   { 
  210.    return $this->TotalCost; 
  211.   } 
  212. }  
  213. ?> 

希望本文所述对大家的PHP程序设计有所帮助。

Tags: PHP购物车类

分享到: