实用的php购物车程序,购物车类

by admin on 2019年7月18日

正文实例陈诉了php利用cookies实现购物车的法子。共享给我们供大家参考。具体深入分析如下:

 代码如下

至于 SESSION 在 php 中的应用是必不要少的,最要紧的成效之一,SESSION
在网络使用中,称为“会话”,大家平日掌握为存款和储蓄特定用户会话所需的消息,那样,当用户在网址页面之间跳转时,存款和储蓄的
SESSION
值不会丢弃,而是在一切用户会话中直接并存下来。通俗一点讲,便是当用户A上网时,会创制三个ID(a)值举办保存下来,假如您的ID(A)值未有进展注销,后一次上网时,这些网址还或然会记得您的ID(A)值,今年就足以在网络张开调用你的ID(A)值了,比方款待您ID(A)值再贰次访问。

实用的php教程购物车程序
初阶有用过一个深感不错,然而看了这一个感到也很好,所以介绍给急需的情海腴谋一下。

php购物车是在电子商务网址会用到的,一种像超市购物车同样的,选好商品了,先松手自个儿的购物车的里面面等好了再到柜台结账,本款php购物车完全依据这些原理来实例的,感兴趣的相恋的人能够来探视,该实例利用了cookie来兑现,代码如下:

<?php
/**
 * 购物车类 cookies 保存,保存周期为1天
注意:浏览器必须辅助cookie手艺够利用
 * 本事调换群:100352308
 */
class cartapi {
 private $cartarray = array(); // 寄存购物车的二维数组
 private $cartcount; // 计算购物车数量
 public $expires = 86400; // cookies过期时间,如若为0则不保留到地点单位为秒
 /**
  * 构造函数 开头化操作 假若$id不为空,则一向抬高到购物车
  *
  */
 public function __construct($id = “”,$name = “”,$price1 = “”,$price2
= “”,$price3 = “”,$count = “”,$image = “”,$expires = 86400) {
  if ($id != “” && is_numeric($id)) {
   $this->expires = $expires;
   $this->addcart($id,$name,$price1,$price2,$price3,$count,$image);
  }
 }
 /**
  * 加多商品到购物车
  *
  * @param int $id 商品的编号
  * @param string $name 商品名称
  * @param decimal $price1 商品价位
  * @param decimal $price2 商品价位
  * @param decimal $price3 商品价位
  * @param int $count 商品数量
  * @param string $image 商品图片
  * @return 假设商品存在,则在原本的数额上加1,并赶回false
  */
 public function
addcart($id,$name,$price1,$price2,$price3,$count,$image) {
  $this->cartarray = $this->cartview(); // 把多少读取并写入数组
  if ($this->checkitem($id)) { // 检查实验商品是不是留存
   $this->modifycart($id,$count,0); // 商品数量加$count
   return false;
  }
  $this->cartarray[0][$id] = $id;
  $this->cartarray[1][$id] = $name;
  $this->cartarray[2][$id] = $price1;
  $this->cartarray[3][$id] = $price2;
  $this->cartarray[4][$id] = $price3;
  $this->cartarray[5][$id] = $count;
  $this->cartarray[6][$id] = $image;
  $this->save();
 }
 /**
  * 修改购物车的里面包车型客车货品
  *
  * @param int $id 商品编号
  * @param int $count 商品数量
  * @param int $flag 修改类型 0:加 1:减 2:修改 3:清空
  * @return 假诺改变退步,则赶回false
  */
 public function modifycart($id, $count, $flag = “”) {
  $tmpid = $id;
  $this->cartarray = $this->cartview(); // 把多少读取并写入数组
  $tmparray = &$this->cartarray;  // 引用
  if (!is_array($tmparray[0])) return false;
  if ($id < 1) {
   return false;
  }
  foreach ($tmparray[0] as $item) {
   if ($item === $tmpid) {
    switch ($flag) {
     case 0: // 加多数码 一般$count为1
      $tmparray[5][$id] += $count;
      break;
     case 1: // 收缩数额
      $tmparray[5][$id] -= $count;
      break;
     case 2: // 修改数量
      if ($count == 0) {
       unset($tmparray[0][$id]);
       unset($tmparray[1][$id]);
       unset($tmparray[2][$id]);
       unset($tmparray[3][$id]);
       unset($tmparray[4][$id]);
       unset($tmparray[5][$id]);
       unset($tmparray[6][$id]);
       break;
      } else {
       $tmparray[5][$id] = $count;
       break;
      }
     case 3: // 清空商品
      unset($tmparray[0][$id]);
      unset($tmparray[1][$id]);
      unset($tmparray[2][$id]);
      unset($tmparray[3][$id]);
      unset($tmparray[4][$id]);
      unset($tmparray[5][$id]);
      unset($tmparray[6][$id]);
      break;
     default:
      break;
    }
   }
  }
  $this->save();
 }
 /**
  * 清空购物车
  *
  */
 public function removeall() {
  $this->cartarray = array();
  $this->save();
 }
 /**
  * 查看购物车新闻
  *
  * @return array 再次回到贰个二维数组
  */
 public function cartview() {
  $cookie =
strips教程lashes($_cookie[‘cartapi’]);
  if (!$cookie) return false;
  $tmpunserialize = unserialize($cookie);
  return $tmpunserialize;
 }
 /**
  * 检查购物车是不是有商品
  *
  * @return bool 假使有商品,再次回到true,不然false
  */
 public function checkcart() {
  $tmparray = $this->cartview();
  if (count($tmparray[0]) < 1) {   
   return false;
  }
  return true;
 }
 /**
  * 商品总括
  *
  * @return array 重返叁个一维数组 $arr[0]:产品1的总价格
$arr[1:产品2得总价格 $arr[2]:产品3的总价格 $arr[3]:产品的总量据
  */
 public function countprice() {
  $tmparray = $this->cartarray = $this->cartview();
  $outarray = array(); //一维数组
  // 0 是成品1的总价格
  // 1 是成品2的总价格
  // 2 是成品3的总价格
  // 3 是成品的总的数量据
  $i = 0;
  if (is_array($tmparray[0])) {
   foreach ($tmparray[0] as $key=>$val) {
    $outarray[0] += $tmparray[2][$key] *
$tmparray[5][$key];
    $outarray[1] += $tmparray[3][$key] *
$tmparray[5][$key];
    $outarray[2] += $tmparray[4][$key] *
$tmparray[5][$key];
    $outarray[3] += $tmparray[5][$key];
    $i++;
   }
  }
  return $outarray;
 }
 /**
  * 总括商品数量
  *
  * @return int
  */
 public function cartcount() {
  $tmparray = $this->cartview();
  $tmpcount = count($tmparray[0]);
  $this->cartcount = $tmpcount;
  return $tmpcount;
 }
 /**
  * 保存商品 如若不利用构造方法,此方法必须利用
  *
  */
 public function save() {
  $tmparray = $this->cartarray;
  $tmpserialize = serialize($tmparray);
  setcookie(“cartapi”,$tmpserialize,time()+$this->expires);
 }
 /**
  * 检查购物车货色是还是不是留存
  *
  * @param int $id
  * @return bool 如若存在 true 不然false
  */
 private function checkitem($id) {
  $tmparray = $this->cartarray;
  if (!is_array($tmparray[0])) return;
  foreach ($tmparray[0] as $item) {
   if ($item === $id) return true;
  }
  return false;
 }
}
?>

有关在 PHP 中使用 SESSION 值是很简短的,只要在上面提前输入
session_start() 起初对话就可以,上边就足以拓展利用 SESSION
了,那只是小网址的使用措施,实际上,SESSION 自己还应该有好些个特性,比方SESSION周期,调用SESSION,SESSION数据保质期,SESSION保存,SESSION注销等等,借使有了这么些属性,看起来才好不轻便叁个相比正规的SESSION应用会话。

<?php
//调用实例
require_once ‘cart.class.php’;
session_start();
if(!isset($_SESSION[‘cart’])) {
实用的php购物车程序,购物车类。$_SESSION[‘cart’] = new Cart;
}
$cart =& $_SESSION[‘cart’];

复制代码 代码如下:

上边是叁个完整的 Session 类,整合了 Session
最中央的属性值,当中,展开,关闭与清理是吻合php编制程序标准的,这也是一个很好的习于旧贯。小小的说澳优(Ausnutria Hyproca)下,借使网址不是大方选择Session 类,基本上就没需求选拔 SESSION 类了。

if(
($_SERVER[‘REQUEST_METHOD’]==”POST”)&&($_POST[‘action’]实用的php购物车程序,购物车类。==’add’)
){
$p = $_POST[‘p’];
$items = $cart->add($p);
}
if( ($_GET[‘action’]==’remove’)&&($_GET[‘key’]!=””) ) {
$items = $cart->remove($_GET[‘key’]);
}

<?php
/**
 * 购物车类 cookies 保存,保存周期为1天
注意:浏览器必须援助cookie才可以运用
 */
class cartapi {
 private $cartarray = array(); // 存放购物车的二维数组
 private $cartcount; // 计算购物车数量
 public $expires = 86400; // cookies过期时间,若是为0则不保留到本地单位为秒
 /**
  * 构造函数 起头化操作 假若$id不为空,则一向助长到购物车
  *
  */
 public function __construct($id = “”,$name = “”,$price1 = “”,$price2
= “”,$price3 = “”,$count = “”,$image = “”,$expires = 86400) {
  if ($id != “” && is_numeric($id)) {
   $this->expires = $expires;
   $this->addcart($id,$name,$price1,$price2,$price3,$count,$image);
  }
 }
 /**
  * 增加货品到购物车
  *
  * @param int $id 商品的数码
  * @param string $name 商品名称
  * @param decimal $price1 商品价位
  * @param decimal $price2 商品价位
  * @param decimal $price3 商品价位
  * @param int $count 商品数量
  * @param string $image 商品图片
  * @return 如果商品存在,则在原先的数据上加1,并回到false
  */
 public function
addcart($id,$name,$price1,$price2,$price3,$count,$image) {
  $this->cartarray = $this->cartview(); // 把数量读取并写入数组
  if ($this->checkitem($id)) { // 检查评定商品是不是留存
   $this->modifycart($id,$count,0); // 商品数量加$count
   return false;
  }
  $this->cartarray[0][$id] = $id;
  $this->cartarray[1][$id] = $name;
  $this->cartarray[2][$id] = $price1;
  $this->cartarray[3][$id] = $price2;
  $this->cartarray[4][$id] = $price3;
  $this->cartarray[5][$id] = $count;
  $this->cartarray[6][$id] = $image;
  $this->save();
 }
 /**
  * 修改购物车的里面包车型大巴货品
  *
  * @param int $id 商品编号
  * @param int $count 商品数量
  * @param int $flag 修改类型 0:加 1:减 2:修改 3:清空
  * @return 如果改变退步,则赶回false
  */
 public function modifycart($id, $count, $flag = “”) {
  $tmpid = $id;
  $this->cartarray = $this->cartview(); // 把多少读取并写入数组
  $tmparray = &$this->cartarray;  // 引用
  if (!is_array($tmparray[0])) return false;
  if ($id < 1) {
   return false;
  }
  foreach ($tmparray[0] as $item) {
   if ($item === $tmpid) {
    switch ($flag) {
     case 0: // 增加数码 一般$count为1
      $tmparray[5][$id] += $count;
      break;
     case 1: // 减弱数额
      $tmparray[5][$id] -= $count;
      break;
     case 2: // 修改数量
      if ($count == 0) {
       unset($tmparray[0][$id]);
       unset($tmparray[1][$id]);
       unset($tmparray[2][$id]);
       unset($tmparray[3][$id]);
       unset($tmparray[4][$id]);
       unset($tmparray[5][$id]);
       unset($tmparray[6][$id]);
       break;
      } else {
       $tmparray[5][$id] = $count;
       break;
      }
     case 3: // 清空商品
      unset($tmparray[0][$id]);
      unset($tmparray[1][$id]);
      unset($tmparray[2][$id]);
      unset($tmparray[3][$id]);
      unset($tmparray[4][$id]);
      unset($tmparray[5][$id]);
      unset($tmparray[6][$id]);
      break;
     default:
      break;
    }
   }
  }
  $this->save();
 }
 /**
  * 清空购物车
  *
  */
 public function removeall() {
  $this->cartarray = array();
  $this->save();
 }
 /**
  * 查看购物车消息
  *
  * @return array 重临三个二维数组
  */
 public function cartview() {
  $cookie = strips教程lashes($_cookie[‘cartapi’]);
  if (!$cookie) return false;
  $tmpunserialize = unserialize($cookie);
  return $tmpunserialize;
 }
 /**
  * 检查购物车是或不是有商品
  *
  * @return bool 纵然有商品,重返true,不然false
  */
 public function checkcart() {
  $tmparray = $this->cartview();
  if (count($tmparray[0]) < 1) {   
   return false;
  }
  return true;
 }
 /**
  * 商品计算
  *
  * @return array 重临贰个一维数组 $arr[0]:产品1的总价格
$arr[1:产品2得总价格 $arr[2]:产品3的总价格 $arr[3]:产品的总量据
  */
 public function countprice() {
  $tmparray = $this->cartarray = $this->cartview();
  $outarray = array(); //一维数组
  // 0 是成品1的总价格
  // 1 是成品2的总价格
  // 2 是成品3的总价格
  // 3 是成品的总量据
  $i = 0;
  if (is_array($tmparray[0])) {
   foreach ($tmparray[0] as $key=>$val) {
    $outarray[0] += $tmparray[2][$key] *
$tmparray[5][$key];
    $outarray[1] += $tmparray[3][$key] *
$tmparray[5][$key];
    $outarray[2] += $tmparray[4][$key] *
$tmparray[5][$key];
    $outarray[3] += $tmparray[5][$key];
    $i++;
   }
  }
  return $outarray;
 }
 /**
  * 总计商品数量
  *
  * @return int
  */
 public function cartcount() {
  $tmparray = $this->cartview();
  $tmpcount = count($tmparray[0]);
  $this->cartcount = $tmpcount;
  return $tmpcount;
 }
 /**
  * 保存商品 假使不利用构造方法,此方法必须使用
  *
  */
 public function save() {
  $tmparray = $this->cartarray;
  $tmpserialize = serialize($tmparray);
  setcookie(“cartapi”,$tmpserialize,time()+$this->expires);
 }
 /**
  * 检查购物车货色是还是不是留存
  *
  * @param int $id
  * @return bool 假如存在 true 不然false
  */
 private function checkitem($id) {
  $tmparray = $this->cartarray;
  if (!is_array($tmparray[0])) return;
  foreach ($tmparray[0] as $item) {
   if ($item === $id) return true;
  }
  return false;
 }
}
?>

 代码如下

if(
($_SERVER[‘REQUEST_METHOD’]==”POST”)&&($_POST[‘action’]==’modi’)
){
$key = $_POST[‘key’];
$value = $_POST[‘value’];
for($i=0;$i<count($key);$i ){
$items = $cart->modi($key[$i],$value[$i]);
}
}

但愿本文所述对大家的PHP程序设计有所扶助。

 <?php
/**
* 文件叙述 Session类
* =================================================================
* 文件名称 session.class.php
* —————————————————————–
* 适用条件: PHP5.2.x / mysql 5.0.x
* —————————————————————–
* 作 者 04ie。com
* —————————————————————–
* 创设时间 二零一零-2-1
* =================================================================
*/
class Session
{
/**
* session私下认可有效时间
* @access public
* @var ineger $_expiry
*/
public $_expiry = 3600;
/**
* 有效域名
* @access public
* @var string $_domain
*/
public $_domain = ‘.phpfamily.cn’;
//初始化
public function __construct()
{
ini_set(‘session.use_trans_id’, 0);
ini_set(‘session.gc_maxlifetime’, $this->_expiry);
ini_set(‘session.use_cookie’, 1);
ini_set(‘session.cookie_path’, ‘/’);
ini_set(‘session.cookie_domain’, $this->_domain);
session_module_name(‘user’);
session_set_save_handler(
array(&$this, ‘open’),
array(&$this, ‘close’),
array(&$this, ‘read’),
array(&$this, ‘write’),
array(&$this, ‘destroy’),
array(&$this, ‘gc’)
);
session_start();
}
/**
* 打开session
* @access public
* @param string $savePath
* @param string $sName
* @return true
*/
public function open($savePath, $sName)
{
$this->_conn = mysql_connect(‘localhost’, ‘root’, ”);
mysql_select_db(‘databases’);
mysql_query(‘SET NAMES “utf8″‘);
return true;
}
/**
* 关闭session
* @access public
* @return bool
*/
public function close()
{
return mysql_close($this->_conn);
}
/**
* 读取session
* @access public
* @param string $sid sessionID
* @return mixed
*/
public function read($sid)
{
$sql = “SELECT data FROM sessions WHERE sessionid=’%s'”;
$sql = sprintf($sql, $sid);
$res = mysql_query($sql, $this->_conn);
$row = mysql_fetch_assoc($res);
return !$row ? null : $row[‘data’];
}
/**
* 写入session
* @access public
* @param string $sid sessionID
* @param string $data serialize连串化后的session内容
* @return
*/
public function write($sid, $data)
{
$expiry = time() + $this->_expiry;
$sql = “REPLACE INTO sessions (sessionid,expiratio
n,data) VALUES (‘%s’, ‘%d’, ‘%s’)”;
$sql = sprintf($sql, $sid, $expiry, $data);
mysql_query($sql, $this->_conn);
return true;
}
/**
* 销毁session
* @access public
* @param string $sid sessionID
* @return
*/
public function destroy($sid)
{
$sql = “DELETE FROM sessions WHERE sessionid=’%s'”;
$sql = sprintf($sql, $sid);
mysql_query($sql, $this->_conn);
return true;
}
/**
* 清理超时session
* @access public
* @param integer $time
* @return
*/
public function gc($time = 0)
{
$sql = “DELETE FROM sessions WHERE expiration < ‘%d'”;
$sql = sprintf($sql, time());
mysql_query($sql, $this->_conn);
mysql_query(‘OPTIMIZE TABLE sessions’);
return true;
}
 

$items = $cart->getCart();
//打印
echo “<table border=1>”;
setlocale(LC_MONETARY, ‘it_IT’);
foreach($items as $item){
echo “<tr><form method=”post” action=”tmp.php”>”;
echo “<td>ID:”.$item[‘ID’].”<input type=hidden name=key[]
value=”.$item[‘ID’].”>”;
echo “<td>产品:”.$item[‘name’];
echo “<td>单价:”.$item[‘price’];
echo “<td><input type=text name=value[]
value=”.$item[‘count’].”>”;
$sum = $item[‘count’]*$item[‘price’];
echo “<td>合计:”.round($sum,2);
echo “<td><input type=button value=’删除’
onclick=”location=’?action=remove&key=”.$item[‘ID’].”‘”>”;
}
echo “<input type=hidden name=action value=modi>”;
echo “<tr><td colspan=7><input type=submit />”;
echo “</td></form></tr></table>”;

您只怕感兴趣的稿子:

  • cookie的优化与购物车实例

上面我们再看贰个php
session购物车类

?>
<hr>
<form method=”post” action=”tmp.php”>
ID:<input type=”text” name=”p[]” />
品名:<input type=”text” name=”p[]” />
单价:<input type=”text” name=”p[]” />
数量:<input type=”text” name=”p[]” />
<input type=hidden name=action value=add>
<input type=”submit” />
</form>

 代码如下

 

<?php
class Cart{
 public function Cart() {
  if(!isset($_SESSION[‘cart’])){
   $_SESSION[‘cart’] = array();
  }
 }

<?
/**
* Cart
*
* 购物车类
*
* @author doodoo<pWtitle@yahoo.com.cn>
* @package Cart
* @category Cart
* @license PHP License
* @access public
* @version $Revision: 1.10 $
*/
Class Cart{

 /*
 增加商品
 param int $id 商品主键
    string $name 商品名称
    float $price 商品价位
    int $num 购物数量
 */
 public  function addItem($id,$name,$price,$num,$img) {
  //如若该商品已存在则一直加其数额
  if (isset($_SESSION[‘cart’][$id])) {
   $this->incNum($id,$num);
   return;
  }
  $item = array();
  $item[‘id’] = $id;
  $item[‘name’] = $name;
  $item[‘price’] = $price;
  $item[‘num’] = $num;
  $item[‘img’] = $img;
  $_SESSION[‘cart’][$id] = $item;
 }

var $cart;
var $totalCount; //商品总量量
var $totalPrices; //商品总金额

 /*
 修改购物车中的商品数量
 int $id 商品主键
 int $num 某商品修改后的数量,即直接把某商品
 的数码改为$num
 */
 public function modNum($id,$num=1) {
  if (!isset($_SESSION[‘cart’][$id])) {
   return false;
  }
  $_SESSION[‘cart’][$id][‘num’] = $num;
 }

/**
* Cart Constructor
*
* 类的构造函数,使购物车保持平稳的开端化状态
*
* @static
* @access public
* @return void 无再次来到值
* @param void 无参数
*/
function Cart(){
$this->totalCount = 0;
$this->totalPrice = 0;
$this->cart = array();
}

 /*
 商品数量+1
 */
 public function incNum($id,$num=1) {
  if (isset($_SESSION[‘cart’][$id])) {
   $_SESSION[‘cart’][$id][‘num’] += $num;
  }
 }

// }}}
// {{{ add($item)

 /*
 商品数量-1
 */
 public function decNum($id,$num=1) {
  if (isset($_SESSION[‘cart’][$id])) {
   $_SESSION[‘cart’][$id][‘num’] -= $num;
  }

/**
* 扩充商品到当下购物车
*
* @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;
}

  //要是减少后,数量为0,则把那个商品删掉
  if ($_SESSION[‘cart’][$id][‘num’] <1) {
   $this->delItem($id);
  }
 }

$this->ca(www.111cn.net)rt[$key][‘ID’] = $key;
$this->cart[$key][‘name’] = next($item);
$this->cart[$key][‘price’] = next($item);
$this->cart[$key][‘count’] = next($item);

 /*
 删除商品
 */
 public function delItem($id) {
  unset($_SESSION[‘cart’][$id]);
 }
 
 /*
 获取单个商品
 */
 public function getItem($id) {
  return $_SESSION[‘cart’][$id];
 }

return $this->cart;
}

 /*
 查询购物车中货品的品种
 */
 public function getCnt() {
  return count($_SESSION[‘cart’]);
 }
 
 /*
 查询购物车中货色的个数
 */
 public function getNum(){
  if ($this->getCnt() == 0) {
   //种数为0,个数也为0
   return 0;
  }

// }}}
// {{{ add($item)

  $sum = 0;
  $data = $_SESSION[‘cart’];
  foreach ($data as $item) {
   $sum += $item[‘num’];
  }
  return $sum;
 }

/**
* 从日前购物车中收取一些或任何货物
* 当 $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’]bf88必发唯一官网,<=0)
unset($this->cart[$key]);
}
return $this->cart;
}

 /*
 购物车中物品的总金额
 */
 public function getPrice() {
  //数量为0,价钱为0
  if ($this->getCnt() == 0) {
   return 0;
  }
  $price = 0.00;
  foreach ($this->items as $item) {
   $price += $item[‘num’] * $item[‘price’];
  }
  return sprintf(“%01.2f”, $price);
 }

// }}}
// {{{ modi($key,$value)

 /*
 清空购物车
 */
 public function clear() {
  $_SESSION[‘cart’] = array();
 }
}

/**
* 修改购物车内商品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;
}

// }}}
// {{{ _isExists($key)

/**
* 判定当前购物车中是不是存在商品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;
}

// }}}
// {{{ isEmpty()

/**
* 判别当前购物车是或不是为空,即没有别的货品
*
* @access public
* @return bool true or false;
*/
function isEmpty(){
return !count($this->cart);
}

// }}}
// {{{ _stat()

/**
* 获得一些总计消息
*
* @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;
}

// }}}
// {{{ totalPrices()

/**
* 取妥贴前购物车全数商品的总金额
*
* @access public
* @return float 再次来到金额;
*/
function totalPrices(){
if($this->_stat())
return $this->totalPrices;
return 0;
}

// }}}
// {{{ isEmpty()

/**
* 取稳妥前购物车全体商品的总量据和
*
* @access public
* @return int ;
*/
function totalCount(){
if($this->_stat())
return $this->totalCount;
return 0;
}

}//End Class Cart
?>
from:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图