php实现仿写实现仿写CodeIgniter的购物车类的购物车类
本文实例讲述了php实现仿写CodeIgniter的购物车类。分享给大家供大家参考。具体如下:
这里仿写CodeIgniter的购物车类
购物车基本功能:
1) 将物品加入购物车
2) 从购物车中删除物品
3) 更新购物车物品信息 【+1/-1】
4) 对购物车物品进行统计
1. 总项目
2. 总数量
3. 总金额
5) 对购物单项物品的数量及金额进行统计
6) 清空购物车
cart.php文件如下:
<?php
/**
*
* @author quanshuidingdang
*/
class Cart {
//物品id及名称规则,调试信息控制
private $product_id_rule = '\.a-z0-9-_'; //小写字母 | 数字 | ._-
private $product_name_rule = '\.\:a-z0-9-_';//小写字母 | 数字 | ._-:
private $debug = TRUE;
//购物车
private $_cart_contents = array();
/**
* 构造函数
*
* @param array
*/
public function __construct() {
//是否第一次使用?
if(isset($_SESSION['cart_contents'])) {
$this->_cart_contents = $_SESSION['cart_contents'];
} else {
$this->_cart_contents['cart_total'] = 0;
$this->_cart_contents['total_items'] = 0;
}
if($this->debug === TRUE) {
//$this->_log("cart_create_success");
}
}
/**
* 将物品加入购物车
*
* @access public
* @param array 一维或多维数组,必须包含键值名:
id -> 物品ID标识,
qty -> 数量(quantity),
price -> 单价(price),
name -> 物品姓名
* @return bool
*/
public function insert($items = array()) {
//输入物品参数异常
if( ! is_array($items) OR count($items) == 0) {
if($this->debug === TRUE) {
$this->_log("cart_no_items_insert");
}
return FALSE;
}
//物品参数处理
$save_cart = FALSE;
if(isset($items['id'])) {
if($this->_insert($items) === TRUE) {
$save_cart = TRUE;
}