各位可根据自己需要改一下,最大的特点是只用了一个Session,有的地方是用了以前网上的一个购物车的类改写的,我也没有好好地整理过
<?php
class cart {
var $sortCount; //商品种类数
var $totalCost; //商品总金额
/* 所有的商品,如:$myCart[5][$name]:商品编号为5的名称
* $myCart[5][$price]:商品编号为5的单价
* $myCart[5][$count]:商品编号为5的数量
* $myCart[5][$cost]:商品编号为5的合计金额
*/
var $myCart ;
var $Id; //每类商品的ID(数组)
var $Name; //每类商品的名称(数组)
var $Price; //每类商品的价格(数组)
var $Count; //每类商品的件数(数组)
var $Cost; //每类商品的价值(数组)
//******构造函数
function cart(){
$this->sortCount = 0 ;
$this->totalCost = 0 ;
$this->myCart = array() ;
session_start(); //初始化一个session
if(session_is_registered("myCart")==false) session_register('myCart');
$this->update();
// $this->Calculate();
}
//********私有,根据session的值更新类中相应数据
function update(){
session_start(); //初始化一个session
$myCart = $_SESSION["myCart"] ;
if(false==$myCart)
{
$this->sortCount = 0 ;
$this->totalCost = 0 ;
$this->myCart = array() ;
return false;
}
//得到商品的总数量
$this->sortCount=count($myCart);
if($this->sortCount>0)
{
//开始计算商品的金额
$totalCost = 0 ;
foreach($myCart as $key=>$val)
{
//先四舍五入
foreach($val as $proName=>$proVal)
{
if($proName !="name")
{
$val[$proName] = round(eregi_replace(",", "",$proVal),2) ;