网站制作学习网PHP→正文:PHP购物车类(转)
字体:

PHP购物车类(转)

PHP 2010/3/19 14:57:20  点击:不统计


<?
Class Cart{
var $cart;
var $totalCount; //商品总数量
var $totalPrices; //商品总金额
/*类的构造函数,使购物车保持稳定的初始化状态 
@static
@access  public
@return  void   无返回值
@param   void   无参数
*/
function Cart(){
$this->totalCount = 0;
$this->totalPrice = 0;
$this->cart = array();
}
/*
增加商品到当前购物车
@access public
@param  array $item 商品信息(一维数组:array(商品ID,商品名称,商品单价,商品数量))
@return array   返回当前购物车内商品的数组
*/
function add($item){
if(!is_array($item)||is_null($item)) return $this->cart;
if(!is_numeric(end($item))||(!is_numeric(prev($item)))) {
echo "价格和数量必须是数字";
return $this->cart;
}
reset($item); //这一句是必须的,因为上面的判断已经移动了数组的指标
$key = current($item);
if($key=="") return $this->cart;
if($this->_isExists($key)){  //商品是否已经存在?
$this->cart[$key]['count'] += end($item);
return $this->cart;
}
$this->cart[$key]['ID']  = $key;
$this->cart[$key]['name'] = next($item);
$this->cart[$key]['price'] = next($item);
$this->cart[$key]['count'] = next($item);
return $this->cart;
}
/**
从当前购物车中取出部分或全部商品
当 $key=="" 的时候,清空当前购物车
当 $key!=""&&$count=="" 的时候,从当前购物车中拣出商品ID号为 $key 的全部商品
当 $key!=""&&$count!="" 的时候,从当前购物车中拣出 $count个 商品ID号为 $key 的商品
@access public@param  string $key 商品ID@return mixed   返回真假或当前购物车内商品的数组
*/
function remove($key="",$count=""){
if($key=="") {
$this->cart = array();
return true;
}
if(!array_key_exists($key,$this->cart)) return false;
if($count==""){ //移去这一类商品
unset($this->cart[$key]);
}else{ //移去$count个商品
$this->cart[$key]['count'] -= $count;
if($this->cart[$key]['count']<=0) unset($this->cart[$key]);
}
return $this->cart;
}
/**
修改购物车内商品ID为 $key 的商品的数量为 $value
@access public
@param  string $key 商品ID
@param  int $value 商品数量
@return array  返回当前购物车内商品的数组;
*/
function modi($key,$value){
if(!$this->_isExists($key)) return $this->cart();  //不存在此商品,直接返回
if($value<=0){     // value 太小,全部删除
unset($this->cart[$key]);
return $this->cart;
}
$this->cart[$key]['count'] = $value;
return $this->cart;
}
/**
返回当前购物车内商品的数组
@access public
@return array  返回当前购物车内商品的数组;
*/
function getCart(){
return $this->cart;
}

/**
判断当前购物车中是否存在商品ID号为$key的商品
@access private
@param  string $key 商品ID
@return bool   true or false;
*/
function _isExists($key)
{
if(isset($this->cart[$key])&&!empty($this->cart[$key])&&array_key_exists($key,$this->cart))
return true;
return false;
}
/*
判断当前购物车是否为空,即没有任何商品
@access public
@return bool   true or false;
*/
function isEmpty(){
return !count($this->cart);
}
/*
取得部分统计信息
@access private
@return bool  true or false;
*/
function _stat(){
if($this->isEmpty()) return false;
foreach($this->cart as $item){
$this->totalCount  += @end($item);
$this->totalPrices += @prev($item);
}
return true;
}
/**
取得当前购物车所有商品的总金额
@access public
@return float  返回金额;
*/
function totalPrices(){
if($this->_stat())
return $this->totalPrices;
return 0;
}
/**
取得当前购物车所有商品的总数量和
@access public
@return int ;
*/
function totalCount(){
if($this->_stat())
return $this->totalCount; 
return 0;
}}
?>


·上一篇:php按比例压缩剪切图片 >>    ·下一篇:php自动创建文件夹 >>
推荐文章
最新文章