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

首頁(yè) > 開(kāi)發(fā) > PHP > 正文

PHP實(shí)例:一個(gè)比較完善的購(gòu)物車(chē)類(lèi)

2024-05-04 21:52:50
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
前不久做到一個(gè)項(xiàng)目需要用到購(gòu)物車(chē),考慮到可能經(jīng)常用到,所以把它封裝成一個(gè)類(lèi),以便以后調(diào)用。你可以簡(jiǎn)單的把這個(gè)類(lèi)稍微修改一下就可以用在自己的程序里了,具體使用請(qǐng)見(jiàn)。

/*****************************************************************************/
/* */
/* file type: 包含文件,建議后綴為.inc */
/* */
/* file name: cart.inc */
/* */
/* Description: 定義一個(gè)購(gòu)車(chē)類(lèi) */
/* */
/* Func list : class cart */
/* */
/* author : bigeagle */
/* */
/* date : 2000/12/24 */
/* */
/* History: 2000/12/24 finished */
/* */
/*****************************************************************************/

//定義本文件常量
define("_CART_INC_" , "exists") ;

/*購(gòu)物車(chē)類(lèi)*/
class TCart
{

var SortCount; //商品種類(lèi)數(shù)
var TotalCost; //商品總價(jià)值

var Id; //每類(lèi)商品的ID(數(shù)組)
var Name; //每類(lèi)商品的名稱(數(shù)組)
var Price; //每類(lèi)商品的價(jià)格(數(shù)組)
var Discount; //商品的折扣(數(shù)組)
var GoodPrice ; //商品的優(yōu)惠價(jià)格(數(shù)組)
var Count; //每類(lèi)商品的件數(shù)(數(shù)組)
var MaxCount ; //商品限量(數(shù)組)

//******構(gòu)造函數(shù)
function TCart()
{
this->SortCount=0;

session_start(); //初始化一個(gè)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();
}

//********私有,根據(jù)session的值更新類(lèi)中相應(yīng)數(shù)據(jù)
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 ;

//計(jì)算商品總數(shù)
this->SortCount=count(sId);

}

//********私有,根據(jù)新的數(shù)據(jù)計(jì)算每類(lèi)商品的價(jià)值及全部商品的總價(jià)
function Calculate()
{
for(i=0;i<this->SortCount;i )
{
/*計(jì)算每件商品的價(jià)值,如果折扣是0 ,則為優(yōu)惠價(jià)格*/
GiftPrice = (this->Discount[i] == 0 ? this->GoodPrice :
ceil(this->Price[i] * this->Discount[i])/100 );
this->TotalCost = GiftPrice * this->Count[i] ;
}
}


//**************以下為接口函數(shù)

//*** 加一件商品
// 判斷是否藍(lán)中已有,如有,加count,否則加一個(gè)新商品
//首先都是改session的值,然后再調(diào)用update() and calculate()來(lái)更新成員變量
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; i )
{ //先找一下是否已經(jīng)加入了這種商品
if(sId[i]==a_ID)
{
sCount[i] = a_Count ;
break;
}
}
if(i >= k)
{ //沒(méi)有則加一個(gè)新商品種類(lèi)
sId[] = a_ID;
sName[] = a_Name;
sPrice[] = a_Price;
sCount[] = a_Count;
sGoodPrice[] = a_GoodPrice ;
sDiscount[] = a_Discount ;
sMaxCount[] = a_MaxCount ;
}

this->Update(); //更新一下類(lèi)的成員數(shù)據(jù)
this->Calculate();
}

//移去一件商品
function Remove(a_ID)
{
global sId , sName , sCount , sPrice , sDiscount ,
sGoodPrice , sMaxCount ;

k = count(sId);
for(i=0; i < k; i )
{
if(sId[i] == a_ID)
{
sCount[i] = 0 ;
break;
}
}

this->Update();
this->Calculate();
}

//改變商品的個(gè)數(shù)
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 ;
}


//是否某件商品已在藍(lán)內(nèi),參數(shù)為此商品的ID
function Exists(a_ID)
{
for(i=0; i<this->SortCount; i )
{
if(this->Id[i]==a_ID) return TRUE;
}
return FALSE;
}

//某件商品在藍(lán)內(nèi)的位置
function IndexOf(a_ID)
{
for(i=0; i<this->SortCount; i )
{
if(this->Id[i]==id) return i;
}
return 0;
}

//取一件商品的信息,主要的工作函數(shù)
//返回一個(gè)關(guān)聯(lián)數(shù)組,
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;
}

//取總的商品種類(lèi)數(shù)
function CartCount()
{
return this->SortCount;
}

//取總的商品價(jià)值
function GetTotalCost()
{
return this->TotalCost;
}
}

來(lái)源:網(wǎng)絡(luò)

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 惠水县| 托克托县| 无极县| 大余县| 丹棱县| 武乡县| 桃园市| 濉溪县| 兴文县| 英德市| 莫力| 迁西县| 荃湾区| 通渭县| 龙南县| 南川市| 饶平县| 嵊泗县| 新营市| 柳州市| 敦化市| 乐平市| 佛教| 马关县| 陈巴尔虎旗| 盐城市| 曲松县| 丹阳市| 福安市| 富宁县| 张家港市| 阿勒泰市| 镇江市| 南通市| 长沙市| 徐汇区| 万载县| 高台县| 全椒县| 吴川市| 习水县|