<?php 

/*
购物车类
*/
// session_start();
class Cart
{ //定义一个数组来保存购物车商品
private $iteams;
private static $ins=null; final protected function __construct()
{ if(isset($_session['cart']))
{
$this->$iteams=session('cart');
}else
{
$this->iteams=array();
}
}
/*防克隆*/
final protected function __clone(){} /*单列模式调用此类*/
public static function getins()
{
if(self::$ins==null)
{
self::$ins=new self();
}
return self::$ins;
} /*添加商品*/
public function add($goods_id,$goods_name,$shop_price)
{
if(!isset($this->iteams[$goods_id]))
{
$row=array();
$row['goods_name']=$goods_name;
$row['shop_price']=$shop_price;
$row['num']=1;
$this->iteams[$goods_id]=$row;
}else
{
$this->iteams[$goods_id]['num']+=1;
}
return $this->iteams;
} /*删除商品*/
public function del($goods_id)
{
unset($this->iteams[$goods_id]);
} /*减少一件商品数量*/ public function _num($goods_id)
{
if(isset($this->iteams[$goods_id]))
{
$this->iteams[$goods_id]['num']-=1;
if($this->iteams[$goods_id]['num']==0)
{
$this->del($goods_id);
}
} } /*计算商品总价格*/ public function total_price()
{
$money=0.0;
foreach($this->iteams as $v)
{
$money+=$v['shop_price']*$v['num'];
}
return $money;
} /**计算商品总数量(有多少种商品)*/
public function shop_num()
{
return count($this->iteams); }
/*列出所有商品*/ public function lists_shop()
{
return $this->iteams;
} /*清空购物车*/ public function clear_cart()
{
$this->iteams=array();
} /*session destory destruct 析构函数*/
public function __destruct()
{
$_session['cart']=$this->iteams;
} } $g=Cart::getins();
$g->add('1','sanxing',55);
$g->add('2','nokio',33.9);
$money=$g->total_price(); print_r($money);
echo '<br/>';
print_r($g->shop_num());
echo '<br/>';
print_r($g->lists_shop()); ?>

PHP商城购物车类的更多相关文章

  1. Mvp快速搭建商城购物车模块

    代码地址如下:http://www.demodashi.com/demo/12834.html 前言: 说到MVP的时候其实大家都不陌生,但是涉及到实际项目中使用,还是有些无从下手.因此这里小编带着大 ...

  2. PHP购物车类

    <?php /** * 购物车类 */ session_start(); class Cart{ private static $ins = null; private $items = arr ...

  3. php之购物车类思路及代码

    <?php /* 购物车类 1.整站范围内,购物车--全局有效 解决:把购物车的信息,放在session里 2.既然全局有效,购物车的实例只有一个 解决:单例模式 技术选型:session+单例 ...

  4. JavaWeb后台购物车类的具体实现

    相信大家肯定都在电商网站买过东西,当我们看中一件喜欢又想买的东西时,这时候你又不想这么快结账,这时候你就可以放入购物车: 就像我们平时去超市买东西一样,会推着购物车去买东西: 那么我们接下来看看jav ...

  5. 3_python之路之商城购物车

    python之路之商城购物车 1.程序说明:Readme.txt 1.程序文件:storeapp_new.py userinfo.py 2.程序文件说明:storeapp_new.py-主程序 use ...

  6. 基于vue2.0打造移动商城页面实践 vue实现商城购物车功能 基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果

    基于vue2.0打造移动商城页面实践 地址:https://www.jianshu.com/p/2129bc4d40e9 vue实现商城购物车功能 地址:http://www.jb51.net/art ...

  7. 用JSP实现的商城购物车模块

    这两天,在学习JSP,正好找个小模块来练练手: 下面就是实现购物车模块的页面效果截图: 图1. 产品显示页面 通过此页面进行产品选择,增加到购物车 图2 .购物车页面 图3 . 商品数量设置 好了,先 ...

  8. python学习(8)实例:写一个简单商城购物车的代码

    要求: 1.写一段商城程购物车序的代码2.用列表把商城的商品清单存储下来,存到列表 shopping_mail3.购物车的列表为shopping_cart4.用户首先输入工资金额,判断输入为数字5.用 ...

  9. mmall商城购物车模块总结

    购物车模块的设计思想 购物车的实现方式有很多,但是最常见的就三种:Cookie,Session,数据库.三种方法各有优劣,适合的场景各不相同.Cookie方法:通过把购物车中的商品数据写入Cookie ...

随机推荐

  1. java Color

    通过16进制颜色值获取颜色方法:Color.decode("#E0EEEE"); --后继续补充

  2. python scrapy 基础

    scrapy是用python写的一个库,使用它可以方便的抓取网页. 主页地址http://scrapy.org/ 文档 http://doc.scrapy.org/en/latest/index.ht ...

  3. 外观模式之C++实现

    说明:本文仅供学习交流,转载请标明出处.欢迎转载. 在我们学习程序设计时经常会用到模块化设计的思想,这一思想是我们首先把要实现的功能用一个模块表示,当用户想完毕某个人物时依次调用相应的函数. 然而.假 ...

  4. 【InversionCount 逆序对数 + MergeSort】

    Definition of Inversion: Let (A[0], A[1] ... A[n], n <= 50) be a sequence of n numbers. If i < ...

  5. [置顶] IOS7状态栏StatusBar官方标准适配方法

    IOS7状态栏StatusBar官方标准适配方法 hello,大家好,ios7正式版已经发布,相信大家都在以各种方式来适配ios7. 如果你已经下载了xcode5,正准备使用,你会发现各种布局的改变. ...

  6. web工程调用hadoop集群1.2

    本实例代码在lz的资源中有上传,有需要的可以参考(下载后的文件解压后有两个,一个直接导入myeclipse工程,另外的jar放在hadoop的lib下面,只需修改Utils中的ip即可运行该程序): ...

  7. Caused by: java.lang.ClassNotFoundException: javassist.ClassPool

    1.错误原因 usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -help ...

  8. C++11 lambda 表达式

    C++11 新增了很多特性,lambda 表达式是其中之一,如果你想了解的 C++11 完整特性,建议去这里,这里,这里,还有这里看看.本文作为 5 月的最后一篇博客,将介绍 C++11 的 lamb ...

  9. Android应用开发提高系列(4)——Android动态加载(上)——加载未安装APK中的类

    前言 近期做换肤功能,由于换肤程度较高,受限于平台本身,实现起来较复杂,暂时搁置了该功能,但也积累了一些经验,将分两篇文章来写这部分的内容,欢迎交流! 关键字:Android动态加载 声明 欢迎转载, ...

  10. 『转载』Debussy快速上手(Verdi相似)

    『转载』Debussy快速上手(Verdi相似) Debussy 是NOVAS Software, Inc(思源科技)发展的HDL Debug & Analysis tool,这套软体主要不是 ...