当前位置: 代码迷 >> PHP >> PHP 兑现队列类 仅供参考
  详细解决方案

PHP 兑现队列类 仅供参考

热度:356   发布时间:2016-04-28 23:20:31.0
PHP 实现队列类 仅供参考
<?php/** * PHP Class for queue * @author [email protected] * @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); ?>
  相关解决方案