码迷,mamicode.com
首页 > 其他好文 > 详细

TP5框架封装购物车类

时间:2020-05-13 12:14:04      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:protected   lct   this   nal   tp5   struct   function   static   购物   


<?php

namespace Home\Tool;


abstract class ACartTool{
/**
* 向购物车中添加1个商品
* @param $goods_id int 商品id
* @param $goods_name String 商品名
* @param $shop_price float 价格
* @return boolean
*/
abstract public function add($goods_id,$goods_name,$shop_price);
/**
* 减少购物车中1个商品数量,如果减少到0,则从购物车删除该商品
* @param $goods_id int 商品id
*/
abstract public function decr($goods_id);
/**
* 从购物车删除某商品
* @param $goods_id 商品id
*/
abstract public function del($goods_id);
/**
* 列出购物车所有的商品
* @return Array
*/
abstract public function items();
/**
* 返回购物车有几种商品
* @return int
*/
abstract public function calcType();
/**
* 返回购物车中商品的个数
* @return int
*/
abstract public function calcCnt();
/**
* 返回购物车中商品的总价格
* @return float
*/
abstract public function calcMoney();
/**
* 清空购物车* @return void
*/
abstract public function clear();

}






class CarTool extends ACartTool{
public $item = array();
public static $ins = null;

public static function getIns(){
if(self::$ins === null){
self::$ins = new self();
}
return self::$ins;

}


//防止外部new
final protected function __construct(){
$this->item = session(‘cart‘);
}
/**
* 向购物车中添加1个商品
* @param $goods_id int 商品id
* @param $goods_name String 商品名
* @param $shop_price float 价格
* @return boolean
*/
public function add($goods_id,$goods_name,$shop_price){
if(isset($this->item[$goods_id])){
$this->item[$goods_id][‘num‘] += 1;
} else {
$goods = array(‘goods_id‘=>$goods_id,‘goods_name‘=>$goods_name,‘shop_price‘=>$shop_price,‘num‘=>1);
$this->item[$goods_id] = $goods;
}
}
/**
* 减少购物车中1个商品数量,如果减少到0,则从购物车删除该商品
* @param $goods_id int 商品id
*/
public function decr($goods_id){
if(isset($this->item[$goods_id])){
$this->item[$goods_id][‘num‘] -= 1;
}
if($this->item[$goods_id][‘num‘] <= 0){
$this->del($goods_id);
}
}
/**
* 从购物车删除某商品
* @param $goods_id 商品id
*/
public function del($goods_id){
unset($this->item[$goods_id]);
}
/**
* 列出购物车所有的商品
* @return Array
*/
public function items(){
return $this->item;
}
/**
* 返回购物车有几种商品
* @return int
*/
public function calcType(){
return count($this->item);
}
/**
* 返回购物车中商品的个数
* @return int
*/
public function calcCnt(){
$cnt = 0;
foreach($this->item as $v){
$cnt += $v[‘num‘];
}
return $cnt;
}
/**
* 返回购物车中商品的总价格
* @return float
*/
public function calcMoney(){
$money = 0;
foreach($this->item as $v){
$money += $v[‘num‘] * $v[‘shop_price‘];
}
return $money;
}
/**
* 清空购物车* @return void
*/
public function clear(){
return $this->item = array();
}

//用session吧$item值存储起来
public function __destruct(){
session(‘cart‘,$this->item);
}
}

————————————————
版权声明:本文为CSDN博主「佐住地球转」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010506564/article/details/78375869

TP5框架封装购物车类

标签:protected   lct   this   nal   tp5   struct   function   static   购物   

原文地址:https://www.cnblogs.com/mmore123/p/12881354.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!