購物車類分析session+single
阿新 • • 發佈:2017-07-03
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);//測試代碼 } //獲取實例。開發一個方法供外部調用 publicstatic 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