您好,欢迎访问一九零五行业门户网

一个比较完善的购物车类_PHP教程

前不久做到一个项目需要用到购物车,考虑到可能经常用到,所以把它封装成一个类,以便以后调用。你可以简单的把这个类稍微修改一下就可以用在自己的程序里了,具体使用请见asp$type=1 target=_blank>http://bigeagle.wotoo.com/article.asp?type=1。 /*****************************************************************************/ /* */ /* file type: 包含文件,建议后缀为.inc */ /* */ /* file name: cart.inc */ /* */ /* description: 定义一个购车类 */ /* */ /* func list : class cart */ /* */ /* author : bigeagle */ /* */ /* date : 2000/12/24 */ /* */ /* history: 2000/12/24 finished */ /* */ /*****************************************************************************/ //定义本文件常量 define(_cart_inc_ , exists) ; /*购物车类*/ class tcart { var $sortcount; //商品种类数 var $totalcost; //商品总价值 var $id; //每类商品的id(数组) var $name; //每类商品的名称(数组) var $price; //每类商品的价格(数组) var $discount; //商品的折扣(数组) var $goodprice ; //商品的优惠价格(数组) var $count; //每类商品的件数(数组) var $maxcount ; //商品限量(数组) //******构造函数 function tcart() { $this->sortcount=0; session_start(); //初始化一个session session_register(sid); session_register(sname); session_register(sprice); session_register(sdiscount); session_register(sgoodprice) ; session_register(scount) ; session_register(smaxcount) ; $this->update(); $this->calculate(); } //********私有,根据session的值更新类中相应数据 function update() { global $sid,$sname,$sprice,$scount,$sdiscount,$smaxcount,$sgoodprice; if(!isset($sid) or !isset($sname) or !isset($sprice) or !isset($sdiscount) or !isset($smaxcount) or !isset($sgoodprice) or !isset($scount)) return; $this->id =$sid; $this->name =$sname; $this->price =$sprice; $this->count =$scount; $this->discount = $sdiscount ; $this->goodprice = $sgoodprice ; $this->maxcount = $smaxcount ; //计算商品总数 $this->sortcount=count($sid); } //********私有,根据新的数据计算每类商品的价值及全部商品的总价 function calculate() { for($i=0;$isortcount;$i++) { /*计算每件商品的价值,如果折扣是0 ,则为优惠价格*/ $giftprice = ($this->discount[$i] == 0 ? $this->goodprice : ceil($this->price[$i] * $this->discount[$i])/100 ); $this->totalcost += $giftprice * $this->count[$i] ; } } //**************以下为接口函数 //*** 加一件商品 // 判断是否蓝中已有,如有,加count,否则加一个新商品 //首先都是改session的值,然后再调用update() and calculate()来更新成员变量 function add($a_id , $a_name , $a_price , $a_discount , $a_goodprice , $a_maxcount , $a_count) { global $sid , $sname , $scount , $sprice , $sdiscount , $sgoodprice , $smaxcount ; $k=count($sid); for ($i=0; $i= $k) { //没有则加一个新商品种类 $sid[] = $a_id; $sname[] = $a_name; $sprice[] = $a_price; $scount[] = $a_count; $sgoodprice[] = $a_goodprice ; $sdiscount[] = $a_discount ; $smaxcount[] = $a_maxcount ; } $this->update(); //更新一下类的成员数据 $this->calculate(); } //移去一件商品 function remove($a_id) { global $sid , $sname , $scount , $sprice , $sdiscount , $sgoodprice , $smaxcount ; $k = count($sid); for($i=0; $i update(); $this->calculate(); } //改变商品的个数 function modifycount($a_i,$a_count) { global $scount; $scount[$a_i] = $a_count ; $this->update(); $this->calculate(); } /*************************** 清空所有的商品 *****************************/ function removeall() { session_unregister(sid); session_unregister(sname); session_unregister(sprice); session_unregister(sdiscount); session_unregister(sgoodprice) ; session_unregister(scount) ; session_unregister(smaxcount) ; $this->sortcount = 0 ; $this->totalcost = 0 ; } //是否某件商品已在蓝内,参数为此商品的id function exists($a_id) { for($i=0; $isortcount; $i++) { if($this->id[$i]==$a_id) return true; } return false; } //某件商品在蓝内的位置 function indexof($a_id) { for($i=0; $isortcount; $i++) { if($this->id[$i]==$id) return $i; } return 0; } //取一件商品的信息,主要的工作函数 //返回一个关联数组, function item($i) { $result[id] = $this->id[$i]; $result[name] = $this->name[$i]; $result[price] = $this->price[$i]; $result[count] = $this->count[$i]; $result[discount] = $this->discount[$i] ; $result[goodprice] = $this->goodprice[$i] ; $result[maxcount] = $this->maxcount[i] ; return $result; } //取总的商品种类数 function cartcount() { return $this->sortcount; } //取总的商品价值 function gettotalcost() { return $this->totalcost; } }
http://www.bkjia.com/phpjc/531721.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/531721.htmltecharticle前不久做到一个项目需要用到购物车,考虑到可能经常用到,所以把它封装成一个类,以便以后调用。你可以简单的把这个类稍微修改一下...
其它类似信息

推荐信息