1. 程式人生 > >購物車類分析session+single

購物車類分析session+single

bsp protected 範圍 etc too 構造方法 必須 ons div

<?php
/**
 * 購物車類分析
 * 1.無論在網站刷新了多少次頁面,或者新增加了多少個商品。打開購物車查看,看到的結果都市一樣的
 *         即,打開A商品刷新,打開B商品刷新,看到的購物車應該是一樣的
 *         整站範圍內購物車是全局有效有的。
 *     解決:將購物車的信息放在數據庫,也可以放在session裏。
 * 2.購物車全局有效,即購物車的實例只能有一個
 *         不能出現3個頁面,,買3個商品,就形成了3個購物車實例
 *     解決:單例模式
 * 
 * 技術支持:seesion+single
 * 
 * 功能分析:
 * 判斷某個商品是否存在
 * 添加商品
 * 刪除商品
 * 修改商品的數量
 * 
 * 某商品數量+1
 * 某商品數量-1
 * 
 * 查詢購物車的商品種類
 * 查詢購物車的商品數量 
 * 查詢購物車的商品總金額
 * 返回購物車裏的所有商品
 * 清空購物車
 
*/ session_start();//使用session必須開啟session class CartTool{ //此處要要到單例模式 private static $ins = null; private $items = array();//用空數組存儲商品 public $single = 0;//測試用代碼 //構造方法受保護 protected function __construct(){ $this->single = mt_rand(1,10000);//測試代碼 } //獲取實例。開發一個方法供外部調用 public
static function getIns(){ //判斷$ins是否是自身的實例 // if(!(self::$ins instanceof self)){ if(self::$ins === null){//若屬性為null則是第一次訪問 self::$ins = new self(); } return self::$ins; } //將購物車的單例對象放到session裏面 public static function getCart(){ //sessoin裏面沒有購物車,或者不是session裏面的實例
if(!isset($_SESSION[‘cart‘]) || !($_SESSION[‘cart‘] instanceof self)){ $_SESSION[‘cart‘] = self::getIns(); } return $_SESSION[‘cart‘]; } } //隨意更換地址後的數據如果一致,說明single+session已經實現。 //整個網站都共享這一個實例。全局有效+單例 print_r(CartTool::getCart());//測試用代碼

購物車類分析session+single