> 백엔드 개발 > PHP 튜토리얼 > PHP 兑现队列类 仅供参考

PHP 兑现队列类 仅供参考

WBOY
풀어 주다: 2016-06-13 10:54:08
원래의
771명이 탐색했습니다.

PHP 实现队列类 仅供参考

<?php/** * PHP Class for queue * @author [email&#160;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); ?>
로그인 후 복사

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿