ホームページ >バックエンド開発 >PHPチュートリアル >PHPショッピングカートクラスの実装コード(シングルケースモード)

PHPショッピングカートクラスの実装コード(シングルケースモード)

WBOY
WBOYオリジナル
2016-07-25 08:59:33864ブラウズ
  1. /**

  2. * php ショッピング カート クラス
  3. * シングルトン モード
  4. * bbs.it-home.org を編集
  5. */
  6. class Cart{
  7. static protected $ins; //インスタンス変数
  8. protected $item = array();コンテナ

  9. //外部呼び出しは禁止されています

  10. final protected function __construct(){
  11. }

  12. //クローン作成は禁止されています

  13. final protected function __clone(){
  14. }

  15. //クラス

  16. の静的保護関数の内部インスタンス化 Getins(){
  17. if(!(self::$insinstanceof self)){
  18. self::$ins = new self () ;
  19. }

  20. return self::$ins;

  21. }

  22. // 商品をページ全体に保存するには、オブジェクトをsession

  23. public function Getcat(){
  24. if(!($_SESSION['cat']) || !($_SESSION['cat'] instanceof self)){
  25. $_SESSION['cat'] = self::Getins ();
  26. }

  27. return $_SESSION['cat'];

  28. }

  29. public function Initem($goods_id){

  30. if($this->Gettype() == 0){
  31. return false;
  32. }
  33. if(!(array_key_exists($goods_id,$this->item))){
  34. return false;
  35. }else{
  36. return $this->item[$goods_id]['num'] // この商品の番号を返します
  37. }
  38. }

  39. Goods を 1 つ追加します

  40. public function Additem($goods_id,$name,$num,$price){
  41. if($this->Initem($goods_id) != false){
  42. $this->item[$goods_id] [' num'] += $num;
  43. return;
  44. }

  45. $this->item[$goods_id] = array(); //商品は配列です

  46. $this -> ;item[$goods_id]['num'] = $num; この商品の購入数量
  47. $this->item[$goods_id]['name'] = $name; this ->item[$goods_id]['price'] = $price; //商品の単価
  48. }

  49. //商品を 1 つ減らす

  50. public function Reduceitem($goods_id, $num){
  51. if($this->Initem($goods_id) == false){
  52. return;
  53. }
  54. if($num > $this->Getunm($goods_id)){
  55. unset($ this-> item[$goods_id]);
  56. }else{
  57. $this->item[$goods_id]['num'] -=$num;
  58. }
  59. }

  60. //グッズを 1 つ削除します

  61. public function Delitem($goods_id){
  62. if($this->Initem($goods_id)){
  63. unset($this->item[$goods_id]);
  64. }
  65. }< /p>
  66. //購入したアイテムのリストに戻る

  67. public function itemlist(){
  68. return $this->item;
  69. }

  70. //何種類合計アイテム数はありますか?

  71. public function Gettype( ){
  72. return count($this->item);
  73. }

  74. // 商品の合計数を取得します

  75. Getunm($goods_id){
  76. return $this- >item[$goods_id]['num'];
  77. }

  78. // ショッピングカート内の商品数を確認します

  79. public function Getnumber(){
  80. $num = 0;
  81. if ($this->Gettype() == 0){
  82. return 0;
  83. }

  84. foreach($this->item) as $k=>$v){

  85. $ num += $v['num'];
  86. }
  87. return $num;
  88. }

  89. //合計価格を計算します

  90. public function Getprice(){
  91. $price = 0;
  92. if ($this->Gettype() == 0){
  93. return 0;
  94. }

  95. foreach($this-> item as $k=>$v){

  96. $ 価格 += $v['num']*$v['num'];
  97. }
  98. return $price;
  99. }

  100. public function Emptyitem(){
  101. $this->item = array();
  102. }
  103. }
  104. ?

  105. コードをコピー
:

include_once('Cart.php');
  • $cart = Cart::Getcat();
  • $cart->Additem('1','php学習チュートリアル(プログラマーホーム) Edition)','5','9999');
  • print_r($cart);
  • ?>
  • コードをコピー
  • 声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。