PHP单例模式实现商城购物车功能-PHP实例教程

 

  PHP单例模式实现商城购物车功能-PHP实例教程完成这个小功能必须会写需求 养成好的习惯 Php购物车的开发需求功能如下 1: 购物车放在session里 2: 单例模式来开发 功能: 增删改查 增一个商品 减少

  PHP单例模式实现商城购物车功能-PHP实例教程完成这个小功能必须会写需求 养成好的习惯

  Php购物车的开发需求功能如下:php100.com

  1: 购物车放在session里

  2: 单例模式来开发

  功能:

  增删改查

  增一个商品

  减少一个商品(改,数量)

  删

  去掉一个商品

  清空购物车

  查:

  返回所有商品列表

  一共有几种商品

  一共有几个商品

  购物车里商品一共多少钱

  当你了解php购物车原理后再来写代码就很简单了下面是写的购物车类

  php代码如下:

  

  class Cart{

  static protected $ins; //实例变量

  protected $item = array(); //放商品容器

  //禁止外部调用

  final protected function __construct(){

  }

  //禁止克隆

  final protected function __clone(){

  }

  //类内部实例化

  static protected function Getins(){

  if(!(self::$ins instanceof self)){

  self::$ins = new self();

  }

  return self::$ins;

  }

  //为了能使商品跨页面保存,把对象放入session里

  public function Getcat(){

  if(!($_SESSION['cat']) !($_SESSION['cat'] instanceof self)){

  $_SESSION['cat'] = self::Getins();

  }

  return $_SESSION['cat'];

  }

  //入列时的检验,是否在$item里存在.

  public function Initem($goods_id){

  if($this->Gettype() == 0){

  return false;

  }

  if(!(array_key_exists($goods_id,$this->item))){

  return false;

  }else{

  return $this->item[$goods_id]['num']; //返回此商品个数

  }

  }

  //添加一个商品

  public function Additem($goods_id,$name,$num,$price){

  if($this->Initem($goods_id) != false){

  $this->item[$goods_id]['num'] += $num;

  return;

  }

  $this->item[$goods_id] = array(); //一个商品为一个数组

  $this->item[$goods_id]['num'] = $num; //这一个商品的购买数量

  $this->item[$goods_id]['name'] = $name; //商品名字

  $this->item[$goods_id]['price'] = $price; //商品单价

  }

  //减少一个商品

  public function Reduceitem($goods_id,$num){

  if($this->Initem($goods_id) == false){

  return;

  }

  if($num > $this->Getunm($goods_id)){

  unset($this->item[$goods_id]);

  }else{

  $this->item[$goods_id]['num'] -=$num;

  }

  }

  //去掉一个商品

  public function Delitem($goods_id){

  if($this->Initem($goods_id)){

  unset($this->item[$goods_id]);

  }

  }

  //返回购买商品列表

  public function Itemlist(){

  return $this->item;

  }

  //一共有多少种商品

  public function Gettype(){

  return count($this->item);

  }

  //获得一种商品的总个数

  public function Getunm($goods_id){

  return $this->item[$goods_id]['num'];

  }

  // 查询购物车中有多少个商品

  public function Getnumber(){

  $num = 0;

  if($this->Gettype() == 0){

  return 0;

  }

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

  $num += $v['num'];

  }

  return $num;

  }

  //计算总价格

  public function Getprice(){

  $price = 0;

  if($this->Gettype() == 0){

  return 0;

  }

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

  $price += $v['num']*$v['num'];

  }

  return $price;

  }

  //清空购物车

  public function Emptyitem(){

  $this->item = array();

  }

  }

  /*

  自己测试代码也拿出来

  */

  ?php

  include_once('Cart.php');

  $cart = Cart::Getcat();

  $cart->Additem('1','谍匪','5','9999');

  print_r($cart);

时间: 2024-09-23 14:32:06

PHP单例模式实现商城购物车功能-PHP实例教程的相关文章

jQuery实现移动端手机商城购物车功能_jquery

购物车数量加减 右加号 $(".jiahao").click(function() { var t = $(this).siblings().find("input");//取到数量 t.val(parseInt(t.val()) + 1);//parseInt()解析input一个字符串,返回一个整数 heji();//调用后面计算的函数 }) 左减号 $(".jianhao").click(function() { var t = $(thi

JS+HTML5实现的前端购物车功能插件实例【附demo源码下载】_javascript技巧

本文实例讲述了JS+HTML5实现的前端购物车功能插件.分享给大家供大家参考,具体如下: 最近做一个商城,需要用到一个简答的购物车功能,当然,后端实现比较容易,,这里重点还是讲一下前端的JS插件. 从源代码里面没看出来,它叫啥,好像叫:ctshop .js,不管啦,反正我提供下载就好,我做了一些简单的修复,支持了中文 这个插件使用了HTML5的新特效:storage ,就是游览器数据库的功能,这跟之前把数据存在cookies里面原理是相识的,这样的好处在于用户刷新页面,数据还在,,又不需要跟后端

thinkPHP商城公告功能开发问题分析_php实例

本文实例分析了thinkPHP商城公告功能开发问题.分享给大家供大家参考,具体如下: 效果如下 1.定在头部 position: fixed; z-index: 999; top: 0; opacity:1; 2.ajax处理json数据 // 获取商城公告 function getNotice() { // 获取公告函数 var res; $.ajax({ type: "POST", url: "{sh::U('Store/Mall/ajaxGetNotice',array

Angularjs 制作购物车功能实例代码_AngularJS

初学angularJS   闲暇之余做了个小案例. 功能:计算购物车商品的价格,以及删除购物车商品. 以下是完整案例(jQuery和angularjs需要自己引入) <!doctype html> <html ng-app="myApp"> <head> <meta charset="utf-8"> <title>无标题文档</title> <style> .cursors{curs

PHP中数据库单例模式的实现代码分享_php实例

首先我们要知道明确单例模式这个概念,那么什么是单例模式呢? 单例模式顾名思义,就是只有一个实例. 作为对象的创建模式, 单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类我们称之为单例类. 单例模式的要点有三个: 一是某个类只能有一个实例: 二是它必须自行创建这个实例: 三是它必须自行向整个系统提供这个实例. 下面我们讨论下为什么要使用PHP单例模式? 多数人都是从单例模式的字面上的意思来理解它的用途, 认为这是对系统资源的节省, 可以避免重复实例化, 是一种"计划

php单例模式的简单实现方法_php实例

php单例模式的简单实现方法 <?php /** * 设计模式之单例模式 * $_instance必须声明为静态的私有变量 * 构造函数和析构函数必须声明为私有,防止外部程序new * 类从而失去单例模式的意义 * getInstance()方法必须设置为公有的,必须调用此方法 * 以返回实例的一个引用 * ::操作符只能访问静态变量和静态函数 * new对象都会消耗内存 * 使用场景:最常用的地方是数据库连接. * 使用单例模式生成一个对象后, * 该对象可以被其它众多对象所使用. */ cl

JQuery实现的购物车功能(可以减少或者添加商品并自动计算价格)_jquery

购物车点击可以减少或者添加商品并自动计算价格: 购物车中可能有这样的功能,那就是点击按钮可以实现商品数量的减少或者增加,并且能够实时的计算出总的商品价格,下面就通过代码实例介绍一下如何实现此功能,当然下面的这个模拟实现的购物车难登大雅之堂,但是可以从中得到一些启发或者相关的知识点,代码如下: 复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title&

淘宝网购物车功能的升级预计2月下旬发布

淘宝商城是亚洲最大购物网站淘宝网全新打造的B2C(B就是business企业的意思,是企业对个人的购物平台),而淘宝网是C2Chttp://www.aliyun.com/zixun/aggregation/39531.html">网上交易平台(C就是customer消费者的意思),主要是个人对个人.淘宝商城整合数千家品牌商.生产商,为商家和消费者之间提供一站式解决方案.提供100%品质保证的商品,7天无理由退货的售后服务,以及购物积分返现等优质服务.区别于淘宝网的是由商家企业作为卖家,所以

Laravel 5.2 中快速实现购物车功能例子

1.安装 通过Composer安装扩展包: composer require syscover/shoppingcart dev-master 然后到config/app.php的providers中注册服务提供者: Syscover\Shoppingcart\ShoppingcartServiceProvider::class, 同时在aliases中注册门面: 'CartProvider' => Syscover\Shoppingcart\Facades\CartProvider::clas