欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-10-30 15:09:28
本文实例讲述了php+redis实现的购物车单例类。分享给大家供大家参考,具体如下:

本文实例讲述了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+redis数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《php基本语法入门教程》、《php数组(array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

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