php实现保存周期为1天的购物车类
本文实例为大家分享了php购物车类的具体代码,供大家参考,具体内容如下
购物车类Cookies保存,保存周期为1天注意:浏览器必须支持Cookie才能够使用
示例代码:
Expires=$Expires; $this->addCart($Id,$Name,$Price1,$Price2,$Price3,$Count,$Image); } } /** *添加商品到购物车 * *@paramint$Id商品的编号 *@paramstring$Name商品名称 *@paramdecimal$Price1商品价格 *@paramdecimal$Price2商品价格 *@paramdecimal$Price3商品价格 *@paramint$Count商品数量 *@paramstring$Image商品图片 *@return如果商品存在,则在原来的数量上加1,并返回false */ publicfunctionaddCart($Id,$Name,$Price1,$Price2,$Price3,$Count,$Image){ $this->CartArray=$this->CartView();//把数据读取并写入数组 if($this->checkItem($Id)){//检测商品是否存在 $this->ModifyCart($Id,$Count,0);//商品数量加$Count returnfalse; } $this->CartArray[0][$Id]=$Id; $this->CartArray[1][$Id]=$Name; $this->CartArray[2][$Id]=$Price1; $this->CartArray[3][$Id]=$Price2; $this->CartArray[4][$Id]=$Price3; $this->CartArray[5][$Id]=$Count; $this->CartArray[6][$Id]=$Image; $this->save(); } /** *修改购物车里的商品 * *@paramint$Id商品编号 *@paramint$Count商品数量 *@paramint$Flag修改类型0:加1:减2:修改3:清空 *@return如果修改失败,则返回false */ publicfunctionModifyCart($Id,$Count,$Flag=""){ $tmpId=$Id; $this->CartArray=$this->CartView();//把数据读取并写入数组 $tmpArray=&$this->CartArray;//引用 if(!is_array($tmpArray[0]))returnfalse; if($Id<1){ returnfalse; } foreach($tmpArray[0]as$item){ if($item===$tmpId){ switch($Flag){ case0://添加数量一般$Count为1 $tmpArray[5][$Id]+=$Count; break; case1://减少数量 $tmpArray[5][$Id]-=$Count; break; case2://修改数量 if($Count==0){ unset($tmpArray[0][$Id]); unset($tmpArray[1][$Id]); unset($tmpArray[2][$Id]); unset($tmpArray[3][$Id]); unset($tmpArray[4][$Id]); unset($tmpArray[5][$Id]); unset($tmpArray[6][$Id]); break; }else{ $tmpArray[5][$Id]=$Count; break; } case3://清空商品 unset($tmpArray[0][$Id]); unset($tmpArray[1][$Id]); unset($tmpArray[2][$Id]); unset($tmpArray[3][$Id]); unset($tmpArray[4][$Id]); unset($tmpArray[5][$Id]); unset($tmpArray[6][$Id]); break; default: break; } } } $this->save(); } /** *清空购物车 * */ publicfunctionRemoveAll(){ $this->CartArray=array(); $this->save(); } /** *查看购物车信息 * *@returnarray返回一个二维数组 */ publicfunctionCartView(){ $cookie=stripslashes($_COOKIE['CartAPI']); if(!$cookie)returnfalse; $tmpUnSerialize=unserialize($cookie); return$tmpUnSerialize; } /** *检查购物车是否有商品 * *@returnbool如果有商品,返回true,否则false */ publicfunctioncheckCart(){ $tmpArray=$this->CartView(); if(count($tmpArray[0])<1){ returnfalse; } returntrue; } /** *商品统计 * *@returnarray返回一个一维数组$arr[0]:产品1的总价格$arr[1:产品2得总价格$arr[2]:产品3的总价格$arr[3]:产品的总数量 */ publicfunctionCountPrice(){ $tmpArray=$this->CartArray=$this->CartView(); $outArray=array();//一维数组 //0是产品1的总价格 //1是产品2的总价格 //2是产品3的总价格 //3是产品的总数量 $i=0; if(is_array($tmpArray[0])){ foreach($tmpArray[0]as$key=>$val){ $outArray[0]+=$tmpArray[2][$key]*$tmpArray[5][$key]; $outArray[1]+=$tmpArray[3][$key]*$tmpArray[5][$key]; $outArray[2]+=$tmpArray[4][$key]*$tmpArray[5][$key]; $outArray[3]+=$tmpArray[5][$key]; $i++; } } return$outArray; } /** *统计商品数量 * *@returnint */ publicfunctionCartCount(){ $tmpArray=$this->CartView(); $tmpCount=count($tmpArray[0]); $this->CartCount=$tmpCount; return$tmpCount; } /** *保存商品如果不使用构造方法,此方法必须使用 * */ publicfunctionsave(){ $tmpArray=$this->CartArray; $tmpSerialize=serialize($tmpArray); setcookie("CartAPI",$tmpSerialize,time()+$this->Expires); } /** *检查购物车商品是否存在 * *@paramint$Id *@returnbool如果存在true否则false */ privatefunctioncheckItem($Id){ $tmpArray=$this->CartArray; if(!is_array($tmpArray[0]))return; foreach($tmpArray[0]as$item){ if($item===$Id)returntrue; } returnfalse; } } ?>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。