zoukankan      html  css  js  c++  java
  • PHP队列类

    
    /**
     * Created by PhpStorm.
     * User: LAMP—Q哥
     * Date: 2017/8/3
     * Time: 12:58
     */
    class Queue {
        private    $_queue = [];
        protected  $cache  = null;
        protected  $queuecachename;
    
        /**
         * 构造方法
         * Queue constructor.
         * @param $queuename
         */
        public function __construct($queuename ) {
            $this->cache = & Cache::instance();
            $this->queuecachename = 'queue_'.$queuename;
            $result = $this->cache->get($this->queuecachename);
            if(is_array($result)) {
                $this->_queue = $result;
            }
        }
    
        /**
         * 将一个单元放入队列末尾
         * @param $value
         * @return $this
         */
        public function enQueue($value) {
            $this->_queue[]=$value;
            $this->cache->set($this->queuecachename,$this->_queue);
            return $this;
        }
    
        /**
         * 将队列开头的一个或多个单元移除
         * @param int $num
         * @return array
         */
        public function sliceQueue($num = 1) {
            if(count($this->_queue)<$num) {
                $num = count($this->_queue);
            }
            $output = array_slice($this->_queue,0,$num);
            $this->cache->set($this->queuecachename,$this->_queue);
            return $output;
        }
    
        /**
         * 将队列开头的单元移出队列
         * @return mixed
         */
        public function deQueue() {
            $entry = array_shift($this->_queue);
            $this->cache->set($this->queuecachename,$this->_queue);
            return $entry;
        }
    
        /**
         * 获取队列的长度
         * @return int
         */
        public function size() {
            return count($this->_queue);
        }
    
        /**
         * 获取队列中的第一个
         * @return mixed
         */
        public function peek() {
            return $this->_queue[0];
        }
    
        /**
         * 返回队列中的一个或者多个单元
         * @param $num
         * @return array
         */
        public function peeks($num){
            if(count($this->_queue)<$num) {
                $num = count($this->_queue);
            }
            return array_slice($this->_queue,0,$num);
        }
    
        /**
         *  销毁队列
         */
        public function destroy() {
            $this->cache->remove($this->queuecachename);
        }
    
    }
    
    
  • 相关阅读:
    踩踩踩
    c语言可变参
    C++开发者都应该使用的10个C++11特性
    c++11 条件变量 生产者-消费者 并发线程
    c++11 线程
    C++ 虚函数表解析 继承
    坐标系
    C++ 容器:顺序性容器、关联式容器和容器适配器
    全面深入介绍C++字符串:string类
    做一个懒COCOS2D-X程序猿(一)停止手打所有cpp文件到android.mk
  • 原文地址:https://www.cnblogs.com/lovellll/p/10200483.html
Copyright © 2011-2022 走看看