PHP 购物车类——封装购物车常用方法,购物车的主要功能是保留用户选择的商品信息。用户可以在购物车内设置选购商品的数量、显示选购商品的总金额,还可以执行清除选择的全部商品信息、重新选择商品信息等操作。为了提高开发的效率,笔者将购物车中的各种功能都封装到Cart购物车类中,实现各种功能只需调用类中对应的方法即可。
PHP 购物车类 语法
/******************************************************************
* @ 说明:购物车类
******************************************************************/
class Cart{
var idStr; //商品ID 组成的字符串,用字符@进行连接
varnumStr; //商品数量组成的字符串,用字符@进行连接
/*
* @ 方法说明:
* 构造方法
*
* @ 参数说明:
* idStr:存储商品ID 的字符串
*numStr:存储商品数量的字符串
*/
function Cart (idStr,numStr)
{
this->idStr =idStr; //为ID 串赋初值
this->numStr =numStr; //为数量串赋初值
}
/*
* @ 方法说明:
* 将商品添加到购物车
*
* @ 参数说明:
* goodsId:商品ID
*goodsNum:购买数量
*/
function addCart (goodsId,goodsNum)
{
arrayIds = explode('@',this->idStr);
flag = 0;
for (i = 0; iarrayIds); i ++) {
if (arrayIds[i] ==goodsId) {
flag = 1;
}
}
if (flag == 0) {
this->idStr .=goodsId . '@';
this->numStr .=goodsNum . '@';
} else {
echo "<script>alert('该商品已经添加!');</script>";
}
}
/*
* @ 方法说明:
* 将商品从购物车移出
*
* @ 参数说明:
* goodsId:商品ID
*/
function removeCart (goodsId)
{
arrayIds = explode('@',this->idStr);
arrayNums = explode('@',this->numStr);
for (i = 0;i < count(arrayIds);i ++) {
if (arrayIds[i] == goodsId) {
unset(arrayIds[i]);
unset(arrayNums[i]);
}
}this->idStr = implode('@', arrayIds);this->numStr = implode('@', arrayNums);
}
/*
* @ 方法说明:
* 更改购物车中商品数量
*
* @ 参数说明:
*goodsId:商品ID
* goodsNum:购买数量
*/
function changeNum (goodsId, goodsNum)
{arrayIds = explode('@', this->idStr);arrayNums = explode('@', this->numStr);
for (i = 0; iarrayIds); i ++) {
if (arrayIds[i] ==goodsId) {
arrayNums[i] = goodsNum;
}
}this->idStr = implode('@', arrayIds);this->numStr = implode('@', arrayNums);
}
/*
* @ 方法说明:
* 清空购物车
*/
function setCartNull ()
{this->idStr = '';
this->numStr = '';
}
/*
* @ 方法说明:
* 获取购物车中商品ID 字符串
*/
function getIdStr ()
{
returnthis->idStr;
}
/*
* @ 方法说明:
* 获取购物车中商品数量字符串
*/
function getNumStr ()
{
return $this->numStr;
}
}