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

首頁 > 開發 > PHP > 正文

PHP實現的比較完善的購物車類

2024-05-04 23:28:25
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了PHP實現的比較完善的購物車類,包含了針對商品常見的增加、刪除與修改等功能,非常具有實用價值,需要的朋友可以參考下
 
 

本文實例講述了PHP實現的比較完善的購物車類。分享給大家供大家參考。具體實現方法如下:

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

復制代碼代碼如下:
<?php 
/*****************************************************************************/ 
/*                                                                           */ 
/* file type:      包含文件,建議后綴為.inc                                  */ 
/*                                                                           */ 
/* file name:      cart.inc                                                  */ 
/*                                                                           */ 
/* Description:    定義一個購車類                                            */ 
/*                                                                           */ 
/* Func list :     class cart                                                */ 
/*                                                                           */ 
/* author :        bigeagle                                                  */ 
/*                                                                           */ 
/*                                                                           */ 
/*****************************************************************************/ 
 
//定義本文件常量 
define("_CART_INC_" , "exists") ; 
 
/*購物車類*/ 
class TCart 

 
  var $SortCount;            //商品種類數 
  var $TotalCost;            //商品總價值 
 
  var $Id;                   //每類商品的ID(數組) 
  var $Name;                 //每類商品的名稱(數組) 
  var $Price;                //每類商品的價格(數組) 
  var $Discount;             //商品的折扣(數組) 
  var $GoodPrice ;           //商品的優惠價格(數組) 
  var $Count;                //每類商品的件數(數組) 
  var $MaxCount ;            //商品限量(數組) 
 
  //******構造函數 
  function TCart() 
  { 
   $this->SortCount=0; 
 
   session_start(); //初始化一個session 
   session_register('sId'); 
   session_register('sName'); 
   session_register('sPrice'); 
   session_register('sDiscount'); 
   session_register('sGoodPrice') ; 
   session_register('sCount') ; 
   session_register('sMaxCount') ; 
 
   $this->Update(); 
   $this->Calculate(); 
  } 
 
  //********私有,根據session的值更新類中相應數據 
  function Update() 
  { 
    global $sId,$sName,$sPrice,$sCount,$sDiscount,$sMaxCount,$sGoodPrice; 
 
   if(!isset($sId) or !isset($sName) or !isset($sPrice) 
      or !isset($sDiscount) or !isset($sMaxCount) 
      or !isset($sGoodPrice) or !isset($sCount)) return; 
 
   $this->Id        =$sId; 
   $this->Name      =$sName; 
   $this->Price     =$sPrice; 
   $this->Count     =$sCount; 
   $this->Discount  = $sDiscount ; 
   $this->GoodPrice = $sGoodPrice ; 
   $this->MaxCount  = $sMaxCount ; 
 
   //計算商品總數 
   $this->SortCount=count($sId); 
 
  } 
 
  //********私有,根據新的數據計算每類商品的價值及全部商品的總價 
  function Calculate() 
  { 
   for($i=0;$i<$this->SortCount;$i++) 
   { 
     /*計算每件商品的價值,如果折扣是0 ,則為優惠價格*/ 
     $GiftPrice = ($this->Discount[$i] == 0 ? $this->GoodPrice : 
                   ceil($this->Price[$i] * $this->Discount[$i])/100 ); 
     $this->TotalCost += $GiftPrice * $this->Count[$i] ; 
   } 
  } 
 
  //**************以下為接口函數 
 
  //*** 加一件商品 
  // 判斷是否藍中已有,如有,加count,否則加一個新商品 
  //首先都是改session的值,然后再調用update() and calculate()來更新成員變量 
  function Add($a_ID , $a_Name , $a_Price , $a_Discount , 
               $a_GoodPrice , $a_MaxCount , $a_Count) 
  { 
   global $sId , $sName , $sCount , $sPrice , $sDiscount , 
          $sGoodPrice , $sMaxCount ; 
 
   $k=count($sId); 
   for ($i=0; $i<$k; $i++) 
   { //先找一下是否已經加入了這種商品 
     if($sId[$i]==$a_ID) 
     { 
      $sCount[$i] += $a_Count ; 
      break; 
     } 
   } 
   if($i >= $k) 
   { //沒有則加一個新商品種類 
    $sId[]        = $a_ID; 
    $sName[]      = $a_Name; 
    $sPrice[]     = $a_Price; 
    $sCount[]     = $a_Count; 
    $sGoodPrice[] = $a_GoodPrice ; 
    $sDiscount[]  = $a_Discount ; 
    $sMaxCount[]  = $a_MaxCount ; 
   } 
 
   $this->Update(); //更新一下類的成員數據 
   $this->Calculate(); 
  } 
 
  //移去一件商品 
  function Remove($a_ID) 
  { 
   global $sId , $sName , $sCount , $sPrice , $sDiscount , 
          $sGoodPrice , $sMaxCount ; 
 
   $k = count($sId); 
   for($i=0; $i < $k; $i++) 
   { 
     if($sId[$i] == $a_ID) 
     { 
       $sCount[$i] = 0 ; 
       break; 
     } 
   } 
 
   $this->Update(); 
   $this->Calculate(); 
  } 
 
  //改變商品的個數 
  function ModifyCount($a_i,$a_Count) 
  { 
   global $sCount; 
 
   $sCount[$a_i] = $a_Count ; 
   $this->Update(); 
   $this->Calculate(); 
  } 
 
  /*************************** 
  清空所有的商品 
  *****************************/ 
  function RemoveAll() 
  { 
   session_unregister('sId'); 
   session_unregister('sName'); 
   session_unregister('sPrice'); 
   session_unregister('sDiscount'); 
   session_unregister('sGoodPrice') ; 
   session_unregister('sCount') ; 
   session_unregister('sMaxCount') ; 
   $this->SortCount = 0 ; 
   $this->TotalCost = 0 ; 
  } 
 
  //是否某件商品已在藍內,參數為此商品的ID 
  function Exists($a_ID) 
  { 
   for($i=0; $i<$this->SortCount; $i++) 
   { 
     if($this->Id[$i]==$a_ID) return TRUE; 
   } 
   return FALSE; 
  } 
 
  //某件商品在藍內的位置 
  function IndexOf($a_ID) 
  { 
   for($i=0; $i<$this->SortCount; $i++) 
   { 
    if($this->Id[$i]==$id) return $i; 
   } 
   return 0; 
  } 
 
  //取一件商品的信息,主要的工作函數 
  //返回一個關聯數組, 
  function Item($i) 
  { 
   $Result[id]        = $this->Id[$i]; 
   $Result[name]      = $this->Name[$i]; 
   $Result[price]     = $this->Price[$i]; 
   $Result[count]     = $this->Count[$i]; 
   $Result[discount]  = $this->Discount[$i] ; 
   $Result[goodprice] = $this->GoodPrice[$i] ; 
   $Result[maxcount]  = $this->MaxCount[i] ; 
   return $Result; 
  } 
 
  //取總的商品種類數 
  function CartCount() 
  { 
   return $this->SortCount; 
  } 
 
  //取總的商品價值 
  function GetTotalCost() 
  { 
   return $this->TotalCost; 
  } 
}  
?>

 

希望本文所述對大家的PHP程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南京市| 黄浦区| 通渭县| 崇州市| 鸡西市| 大同县| 隆尧县| 平阳县| 巴青县| 将乐县| 鹤庆县| 盱眙县| 玉林市| 同心县| 新巴尔虎左旗| 大田县| 安远县| 岳阳县| 常宁市| 顺昌县| 都昌县| 清河县| 武穴市| 石河子市| 宽甸| 探索| 玉山县| 青神县| 塘沽区| 鹤峰县| 陆河县| 泾源县| 修文县| 洛南县| 江西省| 芮城县| 宁陕县| 乌苏市| 大新县| 藁城市| 舞钢市|