當前位置:編程學習大全網 - 源碼下載 - thinkphp做的session購物車,求詳細代碼。有完整例子的可以發下。非常感謝

thinkphp做的session購物車,求詳細代碼。有完整例子的可以發下。非常感謝

<?php

class?CartTool?{

private?static?$ins?=?null;

private?$items?=?array();

final?protected?function?__construct()?{

}

final?protected?function?__clone()?{

}

//?獲取實例

protected?static?function?getIns()?{

if(!(self::$ins?instanceof?self))?{

self::$ins?=?new?self();

}

return?self::$ins;

}

//?把購物車的單例對象放到session裏

public?static?function?getCart()?{

if(!isset($_SESSION['cart'])?||?!($_SESSION['cart']?instanceof?self))?{

$_SESSION['cart']?=?self::getIns();

}

return?$_SESSION['cart'];

}

/*

添加商品

param?int?$id?商品主鍵

param?string?$name?商品名稱

param?float?$ ?商品價格

param?int?$num?購物數量

*/

public?function?addItem($id,$name,$price,$brand,$thumb,$num=1)?{

if($this->hasItem($id))?{?//?如果該商品已經存在,則直接加其數量

$this->incNum($id,$num);

return;

}

$item?=?array();

$item['id']?=?$id;

$item['name']?=?$name;

$item['price']?=?$price;

$item['brand']?=?$brand;

$item['thumb']?=?$thumb;

$item['num']?=?$num;

$this->items[$id]?=?$item;

return?$this->items[$id];

}

/*

修改購物車中的商品數量

param?int?$id?商品主鍵

param?int?$num?某個商品修改後的數量,即直接把某商品的數量改為$num

*/

public?function?modNum($id,$num=1)?{

if(!$this->hasItem($id))?{

return?false;

}

$this->items[$id]['num']?=?$num;

}

/*

商品數量增加1

*/

public?function?incNum($id,$num=1)?{

if($this->hasItem($id))?{

$this->items[$id]['num']?+=?$num;

}

}

/*

商品數量減少1

*/

public?function?decNum($id,$num=1)?{

if($this->hasItem($id))?{

$this->items[$id]['num']?-=?$num;

}

//?如果減少後,數量為0了,則把這個商品從購物車刪掉

if($this->items[$id]['num']?<?1)?{

$this->delItem($id);

}

}

/*

判斷某商品是否存在

*/

public?function?hasItem($id)?{

return?array_key_exists($id,$this->items);

}

/*

刪除商品

*/

public?function?delItem($id)?{

unset($this->items[$id]);

}

/*

查詢購物車中商品的種類

*/

public?function?getCnt()?{

return?count($this->items);

}

/*

查詢購物車中商品的個數

*/

public?function?getNum()?{

if($this->getCnt()?==?0)?{

return?0;

}

$sum?=?0;

foreach($this->items?as?$item)?{

$sum?+=?$item['num'];

}

return?$sum;

}

/*

查詢購物車中商品的總金額

*/

public?function?getPrice()?{

if($this->getCnt()?==?0)?{

return?0;

}

$price?=?0.0;

foreach($this->items?as?$item)?{

$price?+=?$item['num']?*?$item['price'];

}

return?$price;

}

/*

返回購物車中的所有商品

*/

public?function?all()?{

return?$this->items;

}

/*

清空購物車

*/

public?function?clear()?{

$this->items?=?array();

}

}

以上是類文件,需要引入的。

$cart?=?CartTool::getCart();

$car_goods_list?=?$cart->all();//獲取商品列表

$goods_num?=?$cart->getNum();//商品個數

$goods_sum_price?=$cart->getPrice();//總價格

$cart->addItem($goods_id,$goods_list['goods_name'],$goods_list['shop_price'],$goods_list['brand'],$goods_list['goods_thumb'],$num);//增加壹件商品到購物車

$cart->clear();//清空購物車

  • 上一篇:微信小程序怎麽制作
  • 下一篇:o泡果奶魔性文件刷屏朋友圈,妳認為這種惡搞值得推崇嗎?
  • copyright 2024編程學習大全網