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);
        }
    
    }
    
    
  • 相关阅读:
    Java基础中的一些注意点(续)
    Java基础中的一些注意点
    Java基础知识学习
    JavaScript DOM2
    JavaScript window
    函数
    JavaScript数组
    JavaScript循环练习2
    JavaScript循环练习
    JavaScript循环
  • 原文地址:https://www.cnblogs.com/lovellll/p/10200483.html
Copyright © 2011-2022 走看看