国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

一個比較完善的購物車類

2024-09-04 11:43:59
字體:
來源:轉載
供稿:網友

前不久做到一個項目需要用到購物車,考慮到可能經常用到,所以把它封裝成一個類,以便以后調用,你可以簡單的把這個類稍微修改一下就可以用在自己的程序里了.

  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. /* date :          2000/12/24                                                */ 
  15. /*                                                                           */ 
  16. /* History:        2000/12/24  finished                                      */ 
  17. /*                                                                           */ 
  18. /*****************************************************************************/ 
  19.  
  20. //定義本文件常量 
  21. define("_CART_INC_" , "exists") ; 
  22.  
  23. /*購物車類*/ 
  24. class TCart 
  25.  
  26.   var $SortCount;            //商品種類數 
  27.   var $TotalCost;            //商品總價值 
  28.  
  29.   var $Id;                   //每類商品的ID(數組) 
  30.   var $Name;                 //每類商品的名稱(數組) 
  31.   var $Price;                //每類商品的價格(數組) 
  32.   var $Discount;             //商品的折扣(數組) 
  33.   var $GoodPrice ;           //商品的優惠價格(數組) 
  34.   var $Count;                //每類商品的件數(數組) 
  35.   var $MaxCount ;            //商品限量(數組) 
  36.  
  37.   //******構造函數 
  38.   function TCart() 
  39.   { 
  40.    $this->SortCount=0; 
  41.  
  42.    session_start(); //初始化一個session 
  43.    session_register('sId'); 
  44.    session_register('sName'); 
  45.    session_register('sPrice'); 
  46.    session_register('sDiscount'); 
  47.    session_register('sGoodPrice') ; 
  48.    session_register('sCount') ; 
  49.    session_register('sMaxCount') ; 
  50.  
  51.    $this->Update(); 
  52.    $this->Calculate(); 
  53.   } 
  54.  
  55.   //********私有,根據session的值更新類中相應數據 
  56.   function Update() 
  57.   { 
  58.     global $sId,$sName,$sPrice,$sCount,$sDiscount,$sMaxCount,$sGoodPrice
  59.  
  60.    if(!isset($sIdor !isset($sNameor !isset($sPrice
  61.       or !isset($sDiscountor !isset($sMaxCount
  62.       or !isset($sGoodPriceor !isset($sCount)) return
  63.  
  64.    $this->Id        =$sId
  65.    $this->Name      =$sName
  66.    $this->Price     =$sPrice
  67.    $this->Count     =$sCount
  68.    $this->Discount  = $sDiscount ; 
  69.    $this->GoodPrice = $sGoodPrice ; 
  70.    $this->MaxCount  = $sMaxCount ; 
  71.  
  72.    //計算商品總數 
  73.    $this->SortCount=count($sId); 
  74.  
  75.   } 
  76.  
  77.   //********私有,根據新的數據計算每類商品的價值及全部商品的總價 
  78.   function Calculate() 
  79.   { 
  80.    for($i=0;$i<$this->SortCount;$i++) 
  81.    { 
  82.      /*計算每件商品的價值,如果折扣是0 ,則為優惠價格*/ 
  83.      $GiftPrice = ($this->Discount[$i] == 0 ? $this->GoodPrice : 
  84.                    ceil($this->Price[$i] * $this->Discount[$i])/100 ); 
  85.      $this->TotalCost += $GiftPrice * $this->Count[$i] ; 
  86.    } 
  87.   } 
  88.  
  89.  
  90.   //**************以下為接口函數 
  91.  
  92.   //*** 加一件商品 
  93.   // 判斷是否藍中已有,如有,加count,否則加一個新商品 
  94.   //首先都是改session的值,然后再調用update() and calculate()來更新成員變量 
  95.   function Add($a_ID , $a_Name , $a_Price , $a_Discount , 
  96.                $a_GoodPrice , $a_MaxCount , $a_Count
  97.   { 
  98.    global $sId , $sName , $sCount , $sPrice , $sDiscount , 
  99.           $sGoodPrice , $sMaxCount ; 
  100.  
  101.    $k=count($sId); 
  102.    for ($i=0; $i<$k$i++) 
  103.    { //先找一下是否已經加入了這種商品 
  104.      if($sId[$i]==$a_ID
  105.      { 
  106.       $sCount[$i] += $a_Count ; 
  107.       break
  108.      } 
  109.    } 
  110.    if($i >= $k
  111.    { //沒有則加一個新商品種類 
  112.     $sId[]        = $a_ID
  113.     $sName[]      = $a_Name
  114.     $sPrice[]     = $a_Price
  115.     $sCount[]     = $a_Count
  116.     $sGoodPrice[] = $a_GoodPrice ; 
  117.     $sDiscount[]  = $a_Discount ; 
  118.     $sMaxCount[]  = $a_MaxCount ; 
  119.    } 
  120.  
  121.    $this->Update(); //更新一下類的成員數據 
  122.    $this->Calculate(); 
  123.   } 
  124.  
  125.   //移去一件商品 
  126.   function Remove($a_ID
  127.   { 
  128.    global $sId , $sName , $sCount , $sPrice , $sDiscount , 
  129.           $sGoodPrice , $sMaxCount ; 
  130.  
  131.    $k = count($sId); 
  132.    for($i=0; $i < $k$i++) 
  133.    { 
  134.      if($sId[$i] == $a_ID
  135.      { 
  136.        $sCount[$i] = 0 ; 
  137.        break
  138.      } 
  139.    } 
  140.  
  141.    $this->Update(); 
  142.    $this->Calculate(); 
  143.   } 
  144.  
  145.   //改變商品的個數 
  146.   function ModifyCount($a_i,$a_Count
  147.   { 
  148.    global $sCount
  149.  
  150.    $sCount[$a_i] = $a_Count ; 
  151.    $this->Update(); 
  152.    $this->Calculate(); 
  153.   } 
  154.  
  155.  
  156.   /*************************** 
  157.   清空所有的商品 
  158.   *****************************/ 
  159.   function RemoveAll() 
  160.   { 
  161.    session_unregister('sId'); 
  162.    session_unregister('sName'); 
  163.    session_unregister('sPrice'); 
  164.    session_unregister('sDiscount'); 
  165.    session_unregister('sGoodPrice') ; 
  166.    session_unregister('sCount') ; 
  167.    session_unregister('sMaxCount') ; 
  168.    $this->SortCount = 0 ; 
  169.    $this->TotalCost = 0 ; 
  170.   } 
  171.  
  172.  
  173.   //是否某件商品已在藍內,參數為此商品的ID 
  174.   function Exists($a_ID
  175.   { 
  176.    for($i=0; $i<$this->SortCount; $i++) 
  177.    { 
  178.      if($this->Id[$i]==$a_IDreturn TRUE; 
  179.    } 
  180.    return FALSE; 
  181.   } 
  182.  
  183.   //某件商品在藍內的位置 
  184.   function IndexOf($a_ID
  185.   { 
  186.    for($i=0; $i<$this->SortCount; $i++) 
  187.    { 
  188.     if($this->Id[$i]==$idreturn $i
  189.    } 
  190.    return 0; 
  191.   } 
  192.  
  193.   //取一件商品的信息,主要的工作函數 
  194.   //返回一個關聯數組, 
  195.   function Item($i
  196.   { 
  197.    $Result[id]        = $this->Id[$i]; 
  198.    $Result[name]      = $this->Name[$i]; 
  199.    $Result[price]     = $this->Price[$i]; 
  200.    $Result[count]     = $this->Count[$i]; 
  201.    $Result[discount]  = $this->Discount[$i] ; 
  202.    $Result[goodprice] = $this->GoodPrice[$i] ; 
  203.    $Result[maxcount]  = $this->MaxCount[i] ; 
  204.    return $Result
  205.   } 
  206.  
  207.   //取總的商品種類數 
  208.   function CartCount() 
  209.   { 
  210.    return $this->SortCount; 
  211.   } 
  212.  
  213.   //取總的商品價值 
  214.   function GetTotalCost() 
  215.   { 
  216.    return $this->TotalCost; 
  217.   } 
  218. }  
  219. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 崇左市| 资阳市| 南涧| 达孜县| 靖江市| 色达县| 五原县| 恩施市| 宁乡县| 曲靖市| 毕节市| 台南市| 民和| 阳山县| 龙门县| 定陶县| 宁乡县| 乌拉特中旗| 白河县| 威信县| 大洼县| 疏勒县| 正阳县| 家居| 莱西市| 察雅县| 额济纳旗| 循化| 泽州县| 杂多县| 海门市| 会泽县| 乡城县| 得荣县| 东安县| 同江市| 托克托县| 玛沁县| 永春县| 西峡县| 镇宁|