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;
}
}
?>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。