class DoubleQueue{
private $_queue=array();
public function __construct()
{
}
/**
* 得到數組的總大小
*/
public function count()
{
return count($this->_queue);
}
/**
* 將一個單元壓入數組尾部
*/
public function queuePush($data)
{
return array_push($this->_queue,$data);
}
/**
*將一個單元壓入數組開頭
*/
public function queueUnshift($data)
{
return array_unshift($this->_queue,$data);
}
/**
* 從數組最後一個移出
*/
public function queuePop()
{
if($this->count()<=0){
return false;
}
return array_pop($this->_queue);
}
/**
* 將數組中的第一個單元移出
*/
public function queueShift()
{
if($this->count()<=0){
return false;
}
return array_shift($this->_queue);
}
/**
* 清空隊列
*/
public function queueEmpty()
{
return unserialize($this->_queue);
}
/**
* 查找某個值是否在隊列中
* @param 要查找的值
*/
public function queueExist($data)
{
if( !is_array($data) && $this->count() >= 1 ) {
return in_array($data,$this->_queue);
} else {
return false;
}
}
/**
* 得到某個索引的value
* @param $index 索引
*/
public function getIndexQueue($index)
{
if( is_numeric($index) && $this->count() >= 1) {
return $this->_queue[$index];
} else {
return false;
}
}
}