PHP+redis实现的购物车单例类示例


Posted in PHP onFebruary 02, 2019

本文实例讲述了PHP+redis实现的购物车单例类。分享给大家供大家参考,具体如下:

<?php
/**
 * 购物车单例类
 *
 * @author YING
 * @param void
 * @return void
 */
class CartSingleton
{
  //定义一个静态的私有变量
  static private $_instance=null;
  private $redis=null;
  //私有化的构造方法
  private final function __construct()
  {
    //实例化
    $this->redis=new Redis();
    $this->redis->connect('127.0.0.1',6379);
  }
  //私有化的克隆方法
  private function __clone()
  {
  }
  //公有的静态方法
  static public function getInstance()
  {
    if(!(self::$_instance instanceof self)){
      self::$_instance = new CartSingleton();
    }
    return self::$_instance;
  }
  /**
   * 加入购物车
   *
   * @author YING
   * @param userId goodsName goodsId 用户id 商品名称 商品id
   * @return int
   */
   public function addCart($userId,$goodsName,$goodsId)
   {
     $hashKey="user_".$userId; //hash键名
     $key=$goodsId."_".$goodsName;//键名
     //加入
     return $this->redis->hIncrBy($hashKey,$key,1);
   }
  /**
   * 单删
   *
   * @author YING
   * @param userId goodsId
   * @return
   */
  public function cartDelOne($userId,$goodsId)
  {
    $hashKey="user_".$userId; //hash键名
    $key=$goodsId;//键名
    //删除
    return $this->redis->hDel($hashKey,$key);
  }
  /**
   * 清空购物车
   *
   * @author YING
   * @param userId
   * @return void
   */
  public function cartDelAll($userId)
  {
    $hashKey="user_".$userId; //hash键名
    //删除
    return $this->redis->del($hashKey);
  }
  /**
   * 购物车列表
   *
   * @author YING
   * @param userId
   * @return void
   */
  public function cartList($userId)
  {
    $hashKey="user_".$userId; //hash键名
    //查询数据
    return $this->redis->hGetAll($hashKey);
  }
}
//实例化类
$obj=CartSingleton::getInstance();

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP 木马攻击防御技巧
Jun 13 PHP
PHP面向对象分析设计的61条军规小结
Jul 17 PHP
深入PHP购物车模块功能分析(函数讲解,附源码)
Jun 25 PHP
PHP时间戳 strtotime()使用方法和技巧
Oct 29 PHP
PHP上传图片进行等比缩放可增加水印功能
Jan 13 PHP
php比较两个绝对时间的大小
Jan 31 PHP
php支持中文字符串分割的函数
May 28 PHP
php动态读取数据清除最右边距的方法
Apr 12 PHP
Thinkphp5+uploadify实现的文件上传功能示例
May 26 PHP
Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法
May 28 PHP
PHP中的访问修饰符简单比较
Feb 02 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
Feb 27 PHP
PhpStorm配置Xdebug调试的方法步骤
Feb 02 #PHP
PHP中的访问修饰符简单比较
Feb 02 #PHP
PHP PDOStatement::setAttribute讲解
Feb 01 #PHP
PHP PDOStatement::rowCount讲解
Feb 01 #PHP
PHP PDOStatement::nextRowset讲解
Feb 01 #PHP
PHP PDOStatement::getColumnMeta讲解
Feb 01 #PHP
PHP PDOStatement::getAttribute讲解
Feb 01 #PHP
You might like
php全局变量和类配合使用深刻理解
2013/06/05 PHP
php实现设计模式中的单例模式详解
2014/10/11 PHP
基于PHP技术开发客服工单系统
2016/01/06 PHP
PHP命名空间namespace的定义方法详解
2017/03/29 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
javascript数组的使用
2013/03/28 Javascript
Jquery实现控件的隐藏和显示实例
2014/02/08 Javascript
Javascript实现的SHA-256加密算法完整实例
2016/02/02 Javascript
BootStrap智能表单实战系列(七)验证的支持
2016/06/13 Javascript
js创建对象几种方式的优缺点对比
2016/09/28 Javascript
bootstrap table实例详解
2017/01/06 Javascript
bootstrap弹出层的多种触发方式
2017/05/10 Javascript
JavaWeb表单及时验证功能在输入后立即验证(含用户类型,性别,爱好...的验证)
2017/06/09 Javascript
基于jQuery实现的单行公告活动轮播效果
2017/08/23 jQuery
js+html获取系统当前时间
2017/11/10 Javascript
vue内置指令详解
2018/04/03 Javascript
element-ui 关于获取select 的label值方法
2018/08/24 Javascript
详解vue中的computed的this指向问题
2018/12/05 Javascript
解决vue跨域axios异步通信问题
2019/04/17 Javascript
vue下axios拦截器token刷新机制的实例代码
2020/01/17 Javascript
Javascript ParentNode和ChildNode接口原理解析
2020/03/16 Javascript
如何使用three.js 制作一个三维的推箱子游戏
2020/07/29 Javascript
Python实现拼接多张图片的方法
2014/12/01 Python
python去掉空白行的多种实现代码
2018/03/19 Python
python 将json数据提取转化为txt的方法
2018/10/26 Python
浅谈Django+Gunicorn+Nginx部署之路
2019/09/11 Python
python实现身份证实名认证的方法实例
2019/11/08 Python
Python使用Turtle库绘制一棵西兰花
2019/11/23 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
2021/02/25 Python
请写出char *p与"零值"比较的if语句
2014/09/24 面试题
村捐赠仪式答谢词
2014/01/21 职场文书
放飞梦想演讲稿
2014/05/05 职场文书
毕业生面试求职信
2014/06/23 职场文书
大学同学会活动方案
2014/08/20 职场文书
单位个人查摆问题及整改措施
2014/10/28 职场文书
2015财务年度工作总结范文
2015/05/04 职场文书