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

首頁 > 網站 > 建站經驗 > 正文

php購物車類

2024-04-25 20:35:54
字體:
來源:轉載
供稿:網友

最近有個項目中涉及到了商品購物,很顯然,購物車必須得要有,記得很久以前用php做過購物車的,可惜沒保存,這次不能犯以前的錯誤了,經過各種研究,本人也總結了一個php實現購物車的一個類。實現了購物車中的商品的添加,修改,刪除,列表,以及各種計算的相關功能。采用了php單一類的原理,安全高效,簡單易擴展。

class Cart{

static protected $ins; //實例變量

protected $item=array(); //放商品容器

//禁止外部調用

final protected function __construct(){}

//禁止克隆

final protected function __clone(){}

//類內部實例化

static protected function Getins(){

if(!(self::$ins instanceof self)){self::$ins=new self();}return self::$ins;

}

//為了能使商品跨頁面保存,把對象放入session里
public function Getcat(){

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

$_SESSION['cat']=self::Getins();

}

return $_SESSION['cat'];

}

//入列時的檢驗,是否在$item里存在

public function Initem($goods_id){

if($this->Gettype()==0){

return false;

}

//這里檢驗商品是否相同是通過goods_id來檢測,并未通過商品名稱name來檢測,具體情況可做修改

if(!(array_key_exists($goods_id,$this->item))){

return false;

}else{

return $this->item[$goods_id]['num']; //返回此商品個數

}

}

//添加一個商品

public function Additem($goods_id,$name,$num,$price){

if($this->Initem($goods_id)!=false){

$this->item[$goods_id]['num']+=$num;

return;

}

$this->item[$goods_id]=array(); //一個商品為一個數組

$this->item[$goods_id]['num']=$num; //這一個商品的購買數量

$this->item[$goods_id]['name']=$name; //商品名字

$this->item[$goods_id]['price']=$price; //商品單價

}

//減少一個商品

public function Reduceitem($goods_id,$num){

if($this->Initem($goods_id)==false){

return;

}

if($num>$this->Getunm($goods_id)){

unset($this->item[$goods_id]);

}else{

$this->item[$goods_id]['num']-=$num;

}

}

//去掉一個商品

public function Delitem($goods_id){

if($this->Initem($goods_id)){

unset($this->item[$goods_id]);

}

}

//返回購買商品列表

public function Itemlist(){

return $this->item;

}

//一共有多少種商品

public function Gettype(){

return count($this->item);

}

//獲得一種商品的總個數

public function Getunm($goods_id){

return $this->item[$goods_id]['num'];

}

// 查詢購物車中有多少個商品

public function Getnumber(){

$num=0;

if($this->Gettype()==0){

return 0;

}

foreach($this->item as $k=>$v){

$num+=$v['num'];

}

return $num;

}

//計算總價格

public function Getprice(){

$price=0;

if($this->Gettype()==0){

return 0;

}

foreach($this->item as $k=>$v){

$price+=$v['num']*$v['num'];

}

return $price;

}

//清空購物車

public function Emptyitem(){

$this->item=array();

}

}

以上購物車類的調用示例如下:

<?php

header("Content-type:text/html;charset=utf-8");

session_start();

$cart = Cart::Getcat();

$cart->Additem('1','www.bcty365.com','1','1億');

$cart->Additem('2','php購物車類','3','10');

print_r($cart);

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永济市| 辽宁省| 延边| 宁晋县| 图片| 开江县| 双牌县| 定襄县| 永平县| 富川| 平阴县| 辽中县| 慈溪市| 环江| 渝北区| 平湖市| 武宣县| 乐亭县| 临洮县| 来宾市| 丰台区| 黔江区| 马边| 清原| 肥城市| 淅川县| 峨边| 黄骅市| 衡南县| 武隆县| 大姚县| 遂溪县| 镇原县| 琼海市| 永福县| 社会| 轮台县| 汪清县| 汉源县| 勐海县| 苗栗市|