<?php
/**
 * PHP Class for queue
 * @author yangqijun@live.cn
 * @copyright DataFrog Beijingbei  Ltd. 2011-07-25
 */
class Queue {
	public  $length=12;
	public  $queue  = array();  //  if String like this "22,23,24"    convert to array to do queue
	public  $delimiter=',';
	function __construct($queue=array())
	{
		$this->queue=$queue;
	}
	
	/**
	 * @desc start queue
	 * @param String  $param  new queue element
	 */
	public function run($param)
	{
		if(!is_array($this->queue)){
			$this->strToQue();
		}
		$currentlength=$this->countqueue();  //Count  the  queue length
		if($currentlength<$this->length&&$this->length>0) {
			$this->queAdd($param);
		}else if($this->length=0)
		{
			$this->queue[]=$param;
		}
		else {
			$this->queRemove();
			$this->queAdd($param);
		}
			
		return $this->queue;
			
	}
	/**
	 * String like this "22,23,24"  convert to array to do queue
	 * @param String $string
	 * @param String $delimiter
	 */
	public function strToQue (){
		if (empty($this->queue))
		{
			$this->queue=array();
		}
		else 
		{
		$this->queue=explode($this->delimiter,$this->queue);
		}
		 
			
	}
	/**
	 * insert $node into queue
	 * @param string $node
	 */
	private function queAdd($node){
		 
		array_push($this->queue,$node);
		$this->countqueue();
	}
	private function queRemove(){
		$node = array_shift($this->queue);
		$this->countqueue();
		return $node;
	}
	private function countqueue(){
		$currentlength= count($this->queue);
		return $currentlength;
	}
	function __destruct()
	{
		unset($this->queue);
	}
}
//example
 $str='' ;            //array();
$obj=new Queue ($str);
$obj->length=8;  // 队列元素长度 
$obj->delimiter='|';  //如果队列是字符串,则元素直接的分隔符为|
$a=$obj->run('91');   //要添加到队列中的元素
$a=$obj->run('92'); 
$a=$obj->run('93'); 
$a=$obj->run('94'); 
print_r($a); 
?>
 
                    详细解决方案
                PHP 兑现队列类 仅供参考
热度:339   发布时间:2012-11-10 10:48:50.0
                    相关解决方案
                
                - 关于SVN 403 异常的解决办法,仅供参考
 - CSS式样命名规则(仅供参考)
 - 刚刚看了几个推荐框架的帖子,蛮多推荐codeigniter的,请恕小弟我直言,那框架实在不敢恭维啊个人意见,仅供参考
 - PHP 兑现队列类 仅供参考
 - 刚刚看了几个推荐框架的帖子,蛮多推荐codeigniter的,请恕小弟我直言,那框架实在不敢恭维啊个人意见,仅供参考
 - PHP 兑现队列类 仅供参考
 - PL/SQL存储过程-中国电力根本档案存储功能-仅供参考
 - PL/SQL存储过程-中国电力载荷数据存储功能-仅供参考
 - GrowingIO服务端开发面试、以及对测试开发、趣头条的一点个人看法。仅供参考
 - 《转载黑马教程》HTMLCSS讲义,仅供参考
 - 【考研】四川大学951信号与系统2007年~2020年考研真题及解析(仅供参考)
 - asp.net 服务器推送(Server Push) 支持 IE、火狐、谷歌等 仅供参考
 - 腾讯社招笔试题,仅供参考
 - 计算机和智能14 【A. M. TURING】(由于要写作业所以就把一篇29页的英文论文翻译一下!个人翻译,水平很菜,纯属爱好!仅供参考!)
 - 【生活笔记】外包项目和自研项目的个别案例极端曲解对比,仅供参考,欢迎独立思考。
 - 计算机和智能15 【A. M. TURING】(由于要写作业所以就把一篇29页的英文论文翻译一下!个人翻译,水平很菜,纯属爱好!仅供参考!)