php 面向对象(不知道取什么名字)
2013-01-29 16:47
381 查看
<?php /** * @version $Id$ * @create 2013-1-27 21:47:50 By xjiujiu * @description HongJuZi Framework * @copyRight Copyright (c) 2011-2012 http://www.xjiujiu.com.All right reserved */ @header('Content-Type: text/html, charset=utf-8;'); //开启session @session_start(); include_once('./hongjuzi/hhcart.php'); //php 按行执行这里根据传来的action参数去调用其中的方法。 //其实柑橘在java中也是一样的. //在servlet中不也是通过指定方法才去调用doget和dopost方法么。 //只不过这个是在method中指定的。 //如果要调用其他方法,也要自己去实例化的。 //而在struts2中,应该是用!去分割的。 $ac = $_GET['ac']; $cart = new HHCart(); switch($ac) { case 'list': try{ $list = $cart->getList(); foreach($list as $key => $value){ $num = $list[$key]['total']; $obj = $list[$key]['info']; //stripslashes(String)去除斜杠 $price = stripslashes($obj['price']); $count += intval($num * intval($price)); } //echo json_encode(array('list' => $cart->getList())); //建立数组,并复制给$orderList引用.期中list应该是一个对象数组。 $orderList = array('list' => $cart->getList(),'count'=>$count); //array_push($orderList); //转为json格式 echo json_encode($orderList); }catch(Exception $ex){ echo "失败"; } break; case 'add': { try { //接受数据,并存为个一个数组。 $productInfo = array( 'id' => $_POST['productId'], 'name' => $_POST['productName'], 'price' => $_POST['price'], 'type' => $_POST['productType'] ); //打印调试 var_dump($productInfo); $cart->add($productInfo); echo json_encode(array('succeed' => true)); } catch(Exception $ex) { echo json_encode(array( 'succeed' => 'false', 'info' => '貨物添加失敗!' )); } break; } case 'sub': break; case 'destroy': break; default: break; } ?>
HHcart类
<?php /** * @version $Id$ * @create 2013-1-27 21:47:50 By xjiujiu * @description HongJuZi Framework * @copyRight Copyright (c) 2011-2012 http://www.xjiujiu.com.All right reserved */ /** * 購物車類 * * @desc * * @author xjiujiu <xjiujiu@foxmail.com> * @package None * @since 1.0.0 */ class HHCart { /** * @var Map $_cart 購物車容器 */ protected $_cart; /** * @var String $_cartId 當前的購物車ID */ protected $_cartId; /** * @var String $_priceParam 單價名稱 */ protected $_priceParam; /** * @var int $_productIdParamName 當前的產品ID變量名 */ protected $_productIdParamName; /** * @var Mix $_productId 當前的產品ID */ protected $_productId; /** * 構造函數 * * @desc * * @author xjiujiu <xjiujiu@foxmail.com> * @access public * @param String $price 當前的價格變量名稱,默認:price * @param String $productIdParamName 產品編號變量 */ public function __construct($price = 'price', $productIdParamName = 'id') { $this->_getCurCart(); $this->_cartId = session_id(); $this->_productInfo = null; $this->_priceParam = $price; $this->_productIdParamName = $productIdParamName; } /** * 得到當前的購物車容器 * * @desc * * @author xjiujiu <xjiujiu@foxmail.com> * @access protected */ protected function _getCurCart() { if(!isset($_SESSION['HHCART']) || !is_array($_SESSION['HHCART'])) { $_SESSION['HHCART'] = array(); } $this->_cart = &$_SESSION['HHCART']; } /** * 添加貨物 * * @desc * * @author xjiujiu <xjiujiu@foxmail.com> * @access public */ public function add($productInfo) { $productId = $productInfo[$this->_productIdParamName]; if(!isset($this->_cart[$this->_cartId])) { $this->_cart[$this->_cartId] = array(); } if(isset($this->_cart[$this->_cartId][$productId])) { $this->_cart[$this->_cartId][$productId]['total'] ++; } else { $this->_cart[$this->_cartId][$productId]['total'] = 1; $this->_cart[$this->_cartId][$productId]['info'] = $productInfo; } } /** * 減少貨物 * * @desc * * @author xjiujiu <xjiujiu@foxmail.com> * @access public * @return void * @throws none */ public function sub($productId) { if(isset($this->_cart[$this->_cartId])) { if(isset($this->_cart[$this->_cartId][$productId])) { if(1 != $this->_cart[$this->_cartId][$productId]['total']) { $this->_cart[$this->_cartId][$productId]['total'] -= 1; } else { unset($this->_cart[$this->_cartId][$productId]['total']); } } } } /** * 清除貨物 * * @desc * * @author xjiujiu <xjiujiu@foxmail.com> * @access public * @return void * @throws none */ public function delete($productId) { if(isset($this->_cart[$this->_cartId])) { if(isset($this->_cart[$this->_cartId][$productId])) { unset($this->_cart[$this->_cartId][$productId]); } } } /** * 更新購物車 * * @desc * * @author xjiujiu <xjiujiu@foxmail.com> * @access public * @return List 得到當前購物車里的內容 */ public function getList() { return $this->_cart[$this->_cartId]; } /** * 清空 * * @desc * * @author xjiujiu <xjiujiu@foxmail.com> * @access public * @return void * @throws none */ public function destroy() { unset($this->_cart[$this->_cartId]); } /** * 結賬 * * @desc * * @author xjiujiu <xjiujiu@foxmail.com> * @access public */ public function count() { $total = 0; foreach($this->_cart[$this->_cartId] as $product) { $total += intval($product['total']) * intval($product['info'][$this->_priceParam]); } return $total; } } ?>
相关文章推荐
- [ 面向对象 ] php 面向对象(不知道取什么名字)!
- 【PHP面向对象(OOP)编程入门教程】1.什么是面向对象?
- 【PHP面向对象(OOP)编程入门教程】1.什么是面向对象?
- 请高手指点,PHP问题,解密出一个文件,不知道这个是什么用的,怎么使用,谢谢好友指点
- 一首不知道什么名字的洒脱小诗
- PHP面向对象(OOP)编程完全教程:3.什么是面向对象编程呢?
- [导入]不知道取什么名字!
- 我不知道这两天经历了什么,但我php,apache,mysql总算搞定了
- 真不知道起什么名字了
- 【PHP面向对象(OOP)编程入门教程】2.什么是类,什么是对象,类和对象之间的关系
- 在一次配置中还修改了php.ini中的配置 暂时不知道什么用
- php面向对象(OOP)—什么是面向对象
- 沈逸老师PHP魔鬼特训笔记(7)--我叫什么名字
- 不知道什么是面向对象的进来看看
- 路由的距离向量算法等(也不知道该起什么名字好)
- 【PHP面向对象(OOP)编程入门教程】3.什么是面向对象编程呢?
- -PHP面向对象(OOP)编程入门-1.什么是面向对象?
- 【PHP面向对象(OOP)编程入门教程】2.什么是类,什么是对象,类和对象之间的关系
- -PHP面向对象(OOP)编程入门-2.什么是类,什么是对象,类和对象之间的关系
- -PHP面向对象(OOP)编程入门-3.什么是面向对象编程?