购物车类php,购物车类

/****

session加单例完成购物车类

添加商品

删除商品

修改商品数量

商品数量加1

商品数量减1

商品列表

计算商品的种类

计算商品的个数

计算总价格

清空购物车

****/

session_start();

class cart{

static public $cart=null;

public  $basket=array();

protected function  __construct(){

}

static public  function getIns(){

if(self::$cart==null){

self::$cart=new cart;

}

return self::$cart;

}

static public  function getCart(){

if(!isset($_SESSION['cart']) || !($_SESSION['cart'] instanceof self)){

$_SESSION['cart']=self::getIns();

}

return $_SESSION['cart'];

}

//添加商品

public function addItem($id,$name,$shop_price,$num){

if(!$this->hasitem($id)){

echo 'aaaa';

$this->basket[$id]=array('name'=>$name,'price'=>$shop_price,'num'=>$num);

}else{

$this->basket[$id]['num']+=$num;

}

}

//删除商品

public function delitem($id){

if($this->hasitem($id)){

unset($this->basket[$id]);

}

}

//修改商品数量

public function moditem($id,$num){

if($num==0){

$this->delitem($id);

}

else{

$this->basket[$id]['num']=$num;

}

}

//商品数量加1

public function incitem($id){

if($this->hasitem($id)){

$this->basket[$id]['num']+=1;

}

}

public function decitem($id){

if($this->hasitem($id)){

$this->basket[$id]['num']-=1;

}

if($this->basket[$id]['num']==0){

$this->delitem($id);

}

}

//计算商品的个数

public function getCount(){

if($this->cnt()==0){

return 0;

}

$count=0;

foreach($this->basket as $v){

$count+=$v['num'];

}

return $count;

}

//计算商品总价格

public function getPrice(){

if($this->cnt()==0){

return 0;

}

$price=0;

foreach($this->basket as $v){

$price+=$v['num']*$v['price'];

}

return $price;

}

//判断商品是否存在

public function hasitem($id){

return array_key_exists($id,$this->basket);

}

//计算商品的种类

public  function cnt(){

return count($this->basket);

}

//商品列表

public function items(){

return $this->basket;

}

//清空购物车

public function clear(){

$this->basket=array();

}

}

/*

$cart = cart::getCart();

if($_GET['act'] == 'add') {

$id = rand(1,10);

$name = '诺基亚N' . $id;

$shop_price = 100;

$num = rand(1,5);

$cart->addItem($id,$name,$shop_price,$num);

echo 'OK';

}

if($_GET['act'] == 'show') {

print_r($cart->items());

echo '


';

echo '你买了',$cart->cnt(),'种商品,共',$cart->getCount(),'个';

echo '
,花了',$cart->getPrice(),'元';

}

if($_GET['act'] == 'clear') {

$cart->clear();

echo '清空成功';

}

*/

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值