PHP基于SESSION的超级好用购物车类

本文介绍了一种基于Session的购物车实现方式,包括商品添加、解析、总数量及总价格计算、商品数量增减、商品删除及购物车清空等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?php 
session_start();
/*
 * 基于session的shopcart类
 * caroltc 
 * 312493732@qq.com
 * 2014/08/26
 * */

class Shopcart{
	/*
	 * template可拓展
	 * $shopcart = array(0=>array('goodsid'=>'','title'=>'','nums'=>'','price'=>''));
	*/
	/*添加商品到购物车*/
	public static function addGoodsToShopcart($goodsdata){
		$session_shopcart = Shopcart::getShopcart();
		if(count($session_shopcart)>0){
			/*如果购物车不为空*/
			for($i=0;$i<count($session_shopcart);$i++){
				if($session_shopcart[$i]['goodsid']==$goodsdata['id']){
					$session_shopcart[$i]['nums']++;
					$_SESSION['SJ_SHOPCART'] = serialize($session_shopcart);
					return ;
				}
			}
			$session_shopcart[count($session_shopcart)]=array('goodsid'=>$goodsdata['id'],'title'=>$goodsdata['title'],'nums'=>1,'price'=>$goodsdata['price']);
			$_SESSION['SJ_SHOPCART'] = serialize($session_shopcart);
		}else{
			$session_shopcart[count($session_shopcart)]=array('goodsid'=>$goodsdata['id'],'title'=>$goodsdata['title'],'nums'=>1,'price'=>$goodsdata['price']);
			$_SESSION['SJ_SHOPCART'] = serialize($session_shopcart);
		}
	}
	
	/*解析购物车*/
	public static function getShopcart(){
		if(!empty($_SESSION['SJ_SHOPCART'])){
			return unserialize($_SESSION['SJ_SHOPCART']);
		}else{
			$shopcart = array();
			$_SESSION['SJ_SHOPCART'] = serialize($shopcart);
			return $shopcart;
		}
	}
	
	
	/*获取购物车商品总数量 */
	public static function getShopcartNums(){
		if(!$_SESSION['SJ_SHOPCART']){
			return 0;
		}else{
			$session_shopcart = Shopcart::getShopcart();
			$n=0;
			for($i=0;$i<count($session_shopcart);$i++){
				$n += $session_shopcart[$i]['nums'];
			}
			return $n;
		}
	}
	
	/*获取购物车商品总价格 */
	public static function getShopcartPrice(){
		if(!$_SESSION['SJ_SHOPCART']){
			return 0;
		}else{
			$session_shopcart=Shopcart::getShopcart();
			$m=0;
			for($i=0;$i<count($session_shopcart);$i++){
				$m += $session_shopcart[$i]['nums']*$session_shopcart[$i]['price'];
			}
			return $m;
		}
	}
	
	/*添加购物车商品数量*/
	public static function setShopcartNumsAdd($goodsid){
		$session_shopcart=Shopcart::getShopcart();
		for($i=0;$i<count($session_shopcart);$i++){
			if($session_shopcart[$i]['goodsid']==$goodsid){
				$session_shopcart[$i]['nums']++;
				$_SESSION['SJ_SHOPCART'] = serialize($session_shopcart);
				return ;
			}
		}
	}
	
	/*减少购物车商品数量 */
	public static function setShopcartNumsDel($goodsid){
		$session_shopcart=Shopcart::getShopcart();
		for($i=0;$i<count($session_shopcart);$i++){
			if($session_shopcart[$i]['goodsid']==$goodsid){
				$session_shopcart[$i]['nums']--;
				if($session_shopcart[$i]['nums']<=0){
					array_splice($session_shopcart,$i,1); //如果商品数量为0则直接删除
				}
				$_SESSION['SJ_SHOPCART'] = serialize($session_shopcart);
				return ;
			}
		}
	}
	
	/*删除购物车一种商品*/
	public static function delShopcartGoods($goodsid){
		$session_shopcart=Shopcart::getShopcart();
		for($i=0;$i<count($session_shopcart);$i++){
			if($session_shopcart[$i]['goodsid']==$goodsid){
				array_splice($session_shopcart,$i,1); //直接删除
				$_SESSION['SJ_SHOPCART'] = serialize($session_shopcart);
				return ;
			}
		}
	}
	
	/*清空购物车*/
	public static function clearShopcart(){
		$_SESSION['SJ_SHOPCART'] = null;
	}
	
}
?>



转载于:https://my.oschina.net/caroltc/blog/306767

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值