PHP如何编写购物车类的练习代码示例?
- 内容介绍
- 文章标签
- 相关推荐
本文共计665个文字,预计阅读时间需要3分钟。
--- 恢复内容开始 ---购物车类 + 1 class Cart + 2 { + 3 static protected $object; + // 变量 + 4 $item=array(); + // 存储商品信息的数组 + 5 final protected function __construct() + 6 { + 7 // 如果父类中的方法被声明为 + 8 // final,则不能在子类中重写该方法 + 9 } + } + --- 恢复内容结束 ---
---恢复内容开始---
购物车类
代码如下:
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@测试代码,如下:
---恢复内容结束---
本文共计665个文字,预计阅读时间需要3分钟。
--- 恢复内容开始 ---购物车类 + 1 class Cart + 2 { + 3 static protected $object; + // 变量 + 4 $item=array(); + // 存储商品信息的数组 + 5 final protected function __construct() + 6 { + 7 // 如果父类中的方法被声明为 + 8 // final,则不能在子类中重写该方法 + 9 } + } + --- 恢复内容结束 ---
---恢复内容开始---
购物车类
代码如下:
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@测试代码,如下:
---恢复内容结束---

