• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 3年前 (2022-01-25) 14次浏览 已收录 0个评论

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

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

<?php <br />/*****************************************************************************/ <br />/*                                                                           */ <br />/* file type:      包含文件,建议后缀为.inc                                  */ <br />/*                                                                           */ <br />/* file name:      cart.inc                                                  */ <br />/*                                                                           */ <br />/* Description:    定义一个购车类                                            */ <br />/*                                                                           */ <br />/* Func list :     class cart                                                */ <br />/*                                                                           */ <br />/* author :        bigeagle                                                  */ <br />/*                                                                           */ <br />/*                                                                           */ <br />/*****************************************************************************/ <br /> <br />//定义本文件常量 <br />define("_CART_INC_" , "exists") ; <br /> <br />/*购物车类*/ <br />class TCart <br />{ <br /> <br />  var $SortCount;            //商品种类数 <br />  var $TotalCost;            //商品总价值 <br /> <br />  var $Id;                   //每类商品的ID(数组) <br />  var $Name;                 //每类商品的名称(数组) <br />  var $Price;                //每类商品的价格(数组) <br />  var $Discount;             //商品的折扣(数组) <br />  var $GoodPrice ;           //商品的优惠价格(数组) <br />  var $Count;                //每类商品的件数(数组) <br />  var $MaxCount ;            //商品限量(数组) <br /> <br />  //******构造函数 <br />  function TCart() <br />  { <br />   $this->SortCount=0; <br /> <br />   session_start(); //初始化一个session <br />   session_register('sId'); <br />   session_register('sName'); <br />   session_register('sPrice'); <br />   session_register('sDiscount'); <br />   session_register('sGoodPrice') ; <br />   session_register('sCount') ; <br />   session_register('sMaxCount') ; <br /> <br />   $this->Update(); <br />   $this->Calculate(); <br />  } <br /> <br />  //********私有,根据session的值更新类中相应数据 <br />  function Update() <br />  { <br />    global $sId,$sName,$sPrice,$sCount,$sDiscount,$sMaxCount,$sGoodPrice; <br /> <br />   if(!isset($sId) or !isset($sName) or !isset($sPrice) <br />      or !isset($sDiscount) or !isset($sMaxCount) <br />      or !isset($sGoodPrice) or !isset($sCount)) return; <br /> <br />   $this->Id        =$sId; <br />   $this->Name      =$sName; <br />   $this->Price     =$sPrice; <br />   $this->Count     =$sCount; <br />   $this->Discount  = $sDiscount ; <br />   $this->GoodPrice = $sGoodPrice ; <br />   $this->MaxCount  = $sMaxCount ; <br /> <br />   //计算商品总数 <br />   $this->SortCount=count($sId); <br /> <br />  } <br /> <br />  //********私有,根据新的数据计算每类商品的价值及全部商品的总价 <br />  function Calculate() <br /><i style="color:transparent">本#文来源gaodai$ma#com搞$$代**码网$</i><button>搞代gaodaima码</button>  { <br />   for($i=0;$iSortCount;$i++) <br />   { <br />     /*计算每件商品的价值,如果折扣是0 ,则为优惠价格*/ <br />     $GiftPrice = ($this->Discount[$i] == 0 ? $this->GoodPrice : <br />                   ceil($this->Price[$i] * $this->Discount[$i])/100 ); <br />     $this->TotalCost += $GiftPrice * $this->Count[$i] ; <br />   } <br />  } <br /> <br />  //**************以下为接口函数 <br /> <br />  //*** 加一件商品 <br />  // 判断是否蓝中已有,如有,加count,否则加一个新商品 <br />  //首先都是改session的值,然后再调用update() and calculate()来更新成员变量 <br />  function Add($a_ID , $a_Name , $a_Price , $a_Discount , <br />               $a_GoodPrice , $a_MaxCount , $a_Count) <br />  { <br />   global $sId , $sName , $sCount , $sPrice , $sDiscount , <br />          $sGoodPrice , $sMaxCount ; <br /> <br />   $k=count($sId); <br />   for ($i=0; $i<$k; $i++) <br />   { //先找一下是否已经加入了这种商品 <br />     if($sId[$i]==$a_ID) <br />     { <br />      $sCount[$i] += $a_Count ; <br />      break; <br />     } <br />   } <br />   if($i >= $k) <br />   { //没有则加一个新商品种类 <br />    $sId[]        = $a_ID; <br />    $sName[]      = $a_Name; <br />    $sPrice[]     = $a_Price; <br />    $sCount[]     = $a_Count; <br />    $sGoodPrice[] = $a_GoodPrice ; <br />    $sDiscount[]  = $a_Discount ; <br />    $sMaxCount[]  = $a_MaxCount ; <br />   } <br /> <br />   $this->Update(); //更新一下类的成员数据 <br />   $this->Calculate(); <br />  } <br /> <br />  //移去一件商品 <br />  function Remove($a_ID) <br />  { <br />   global $sId , $sName , $sCount , $sPrice , $sDiscount , <br />          $sGoodPrice , $sMaxCount ; <br /> <br />   $k = count($sId); <br />   for($i=0; $i < $k; $i++) <br />   { <br />     if($sId[$i] == $a_ID) <br />     { <br />       $sCount[$i] = 0 ; <br />       break; <br />     } <br />   } <br /> <br />   $this->Update(); <br />   $this->Calculate(); <br />  } <br /> <br />  //改变商品的个数 <br />  function ModifyCount($a_i,$a_Count) <br />  { <br />   global $sCount; <br /> <br />   $sCount[$a_i] = $a_Count ; <br />   $this->Update(); <br />   $this->Calculate(); <br />  } <br /> <br />  /*************************** <br />  清空所有的商品 <br />  *****************************/ <br />  function RemoveAll() <br />  { <br />   session_unregister('sId'); <br />   session_unregister('sName'); <br />   session_unregister('sPrice'); <br />   session_unregister('sDiscount'); <br />   session_unregister('sGoodPrice') ; <br />   session_unregister('sCount') ; <br />   session_unregister('sMaxCount') ; <br />   $this->SortCount = 0 ; <br />   $this->TotalCost = 0 ; <br />  } <br /> <br />  //是否某件商品已在蓝内,参数为此商品的ID <br />  function Exists($a_ID) <br />  { <br />   for($i=0; $iSortCount; $i++) <br />   { <br />     if($this->Id[$i]==$a_ID) return TRUE; <br />   } <br />   return FALSE; <br />  } <br /> <br />  //某件商品在蓝内的位置 <br />  function IndexOf($a_ID) <br />  { <br />   for($i=0; $iSortCount; $i++) <br />   { <br />    if($this->Id[$i]==$id) return $i; <br />   } <br />   return 0; <br />  } <br /> <br />  //取一件商品的信息,主要的工作函数 <br />  //返回一个关联数组, <br />  function Item($i) <br />  { <br />   $Result[id]        = $this->Id[$i]; <br />   $Result[name]      = $this->Name[$i]; <br />   $Result[price]     = $this->Price[$i]; <br />   $Result[count]     = $this->Count[$i]; <br />   $Result[discount]  = $this->Discount[$i] ; <br />   $Result[goodprice] = $this->GoodPrice[$i] ; <br />   $Result[maxcount]  = $this->MaxCount[i] ; <br />   return $Result; <br />  } <br /> <br />  //取总的商品种类数 <br />  function CartCount() <br />  { <br />   return $this->SortCount; <br />  } <br /> <br />  //取总的商品价值 <br />  function GetTotalCost() <br />  { <br />   return $this->TotalCost; <br />  } <br />}  <br />?>

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


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP实现的比较完善的购物车类_PHP
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址