---恢复内容开始--- 购物车类 代码如下: 1 class Cart 2 { 3 static protected $object ; // 变量 4 $item = array (); 存储商品信息的数组 5 6 final protected function __construct() 7 { 8 如果父类中的方法被声明为
---恢复内容开始---
购物车类
代码如下:
1 class Cart 2 { 3 static protected $object; //变量 4 $item = array(); 存储商品信息的数组 5 6 final protected function __construct() 7 { 8 如果父类中的方法被声明为final,则子类无法覆盖该方法; 如果一个类被声明为final,则不能被继承。禁止在外部使用 9 } 10 11 __clone() 12 13 同上 14 15 16 实例化类 17 public init() 18 19 return new self; 20 21 22 获取实例对象 23 getObject() 24 25 if( !isset($_SESSION['cart']) || !($_SESSION['cart'] instanceof self) ) 26 { 27 $_SESSION['cart'] = self::init(); 28 self::$object = ]; 29 return self::$object; 30 } 31 32 33 function __get($name) 34 35 return self::$ 36 37 38 获取购物车内商品的种类数量 39 function getType() 40 41 count(self::$item); 42 43 44 检测购物车内是否存在某种商品 45 function inItem($goodsId 46 47 if( $this->getType() == 0 ) 若购物车内不存在任何商品,自然也就不存在此种商品 48 49 return; 不存在 50 51 52 if( array_key_exists($goodsId,self::) ) 53 54 true; 存在 55 56 else 57 58 false; 59 60 61 62 增加一种商品:若此商品信息已经存在于购物车内,只需增加商品数量;若购物车内不存在此商品的任何信息,需要增加此商品的全部信息 63 function addItem($name,1)">$num,1)">$price 64 65 $this->inItem( 66 67 self::$item[$goodsId]['num'] += $num 68 return 69 70 71 self::$goodsId] = array(); 72 73 self::$goodsId]['name'] = 74 self::$goodsId]['num'] = 75 self::$goodsId]['price'] = 76 77 78 79 减少一种商品的数量 80 function reduceItem() 81 82 $num > self::$goodsId]['num'] ) 83 84 unset(self::]); 85 86 87 88 self::$goodsId]['num'] -= 89 90 91 92 完全去掉某种商品 93 function delItem( 94 95 96 97 98 获取一种商品的数量 99 function getNum(100 101 102 103 104 获取所有商品的数量 105 getNumber() 106 107 $num = 0108 foreach( self::$item as $value ) 109 110 $num += $value['num'111 112 return 113 114 115 获取所有商品的价格 116 getPrice() 117 118 $price = 0119 120 121 $price += $value['price']*122 123 124 125 126 情况购物车 127 emptyCart() 128 129 self::130 131 }@H_801_502@测试代码,如下:
1 $cart = Cart::getObject(); 2 var_dump($cart 3 $cart->addItem(1,'PHP','30','50' 4 $cart->addItem(2,'Java','3',1)"> 5 $item = $cart->__get('item' 6 7 $price = $cart->getPrice(); 8 9 $num = $cart->getNum(110 11 $number = getNumber(); 12 $number13 $cart->reduceItem(1,2014 15 $item);@H_801_502@
---恢复内容结束---