ustb
注册会员

中级会员
UID 26170
精华
2
积分 105
帖子 264
金钱 85 喜悦币
威望 20
人脉 0
阅读权限 20
注册 2004-2-15
状态 离线
|
[推荐阅读] 我也要吃
我也发一个吧,简单点的
好多天没出门了,吃不到绿色食品,眼睛倒是快绿了^_^
<?php /** * 类名: cart * 描述: 购物车 * 其他: 2004-8-19 */ class cart { /** * 物品 */ var $item;
/** * 总数 */ var $total; /** * 构造函数,初始化购物车 */ function cart() { $this->item = array(); $this->total = 0; }
/** * 添加商品入购物车 * * @param int $id 商品ID * @param int $num 商品数量 * @param float $price 商品单价 */ function addItem($id, $num, $price) { // 如果商品存在就加数量和价格,否则直接加入 if(!isset($this->item[$id])) { $this->item[$id]["num"] = (int)$num; $total_cost = $this->item[$id]["cost"] = (float)$price * (int)$num; $this->total += $total_cost; } else { $item_count = $this->item[$id]["num"] += (int)$num; $this->item[$id]["cost"] += (float)$price * (int)$item_count; $new_cost = (int)$num * $item_price; $this->total += $new_cost; } }
/** * 修改商品数量 * * @param int $id 商品ID * @param int $num 商品数量 * @param float $price 商品单价 */ function modItem($id, $num, $price) { $pre_num = $this->item[$id]['num']; $cur_num = $pre_num - $num; $this->item[$id]['cost'] = $num * $price; $this->item[$id]['num'] = $num;
$this->total -= $cur_num * $price; } /** * 取得总价 */ function getTotalCost() { Return $this->total; }
/** * 取得物品总数 */ function getItemNum() { $total = 0; foreach($this->item as $key=>$val) { if(isset($val['num'])) { $total += $val['num']; } }
Return $total; }
/** * 删除商品 * * @param int $id 商品ID */ function delItem($id) { $this->total -= $this->item[$id]['cost']; $this->item[$id] = array(); }
/** * 清空购物车 */ function clear() { $this->item = array(); $this->total = 0; } }
// 测试 session_start(); if(!isset($CartHandler)) { $CartHandler = new cart; $_SESSION['cart'] = $CartHandler; }
$CartHandler->addItem(1,3,5); $CartHandler->addItem(2,2,4.5);
echo "修改前总数:".$CartHandler->getItemNum()."<br>"; echo "修改前总价:".$CartHandler->getTotalCost()."<br>";
$CartHandler->modItem(1,2,5);
echo "修改后总数:".$CartHandler->getItemNum()."<br>"; echo "修改后总价:".$CartHandler->getTotalCost()."<br>";
$CartHandler->delItem(1);
echo "删除后总数:".$CartHandler->getItemNum()."<br>"; echo "删除后总价:".$CartHandler->getTotalCost()."<br>"; ?>
|
|