CQueue
| Пакет | system.collections |
|---|---|
| Наследование | class CQueue » CComponent |
| Реализует | IteratorAggregate, Traversable, Countable |
| С версии | 1.0 |
| Исходный код | framework/collections/CQueue.php |
Реализованы типичные операции очереди, включая enqueue(), dequeue() и peek(). Кроме того, contains() можно использовать для проверки наличия элемента в очереди. Чтобы получить количество элементов в очереди, проверьте свойство Count.
Элементы очереди можно перебирать с помощью foreach следующим образом,
foreach($queue as $item) ...
Свойства общедоступные
| Свойство | Тип | Описание | Определено |
|---|---|---|---|
| count | integer | Возвращает количество элементов в очереди. | CQueue |
| iterator | Iterator | Возвращает итератор для перебора элементов в очереди. | CQueue |
Методы общедоступные
| Метод | Описание | Определено |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | CComponent |
| __construct() | Конструктор. | CQueue |
| __get() | Возвращает значение свойства, список обработчиков событий или поведение на основе его имени. | CComponent |
| __isset() | Проверяет, является ли значение свойства null. | CComponent |
| __set() | Устанавливает значение свойства компонента. | CComponent |
| __unset() | Устанавливает свойство компонента в null. | CComponent |
| asa() | Возвращает объект поведения с указанным именем. | CComponent |
| attachBehavior() | Присоединяет поведение к данному компоненту. | CComponent |
| attachBehaviors() | Присоединяет список поведений к компоненту. | CComponent |
| attachEventHandler() | Присоединяет обработчик событий к событию. | CComponent |
| canGetProperty() | Определяет, можно ли считать свойство. | CComponent |
| canSetProperty() | Определяет, можно ли установить свойство. | CComponent |
| clear() | Удаляет все элементы в очереди. | CQueue |
| contains() | CQueue | |
| copyFrom() | Копирует данные в очередь из итерируемого источника. | CQueue |
| count() | Возвращает количество элементов в очереди. | CQueue |
| dequeue() | Удаляет и возвращает объект в начале очереди. | CQueue |
| detachBehavior() | Отсоединяет поведение от компонента. | CComponent |
| detachBehaviors() | Отсоединяет все поведения от компонента. | CComponent |
| detachEventHandler() | Отсоединяет существующий обработчик событий. | CComponent |
| disableBehavior() | Отключает присоединенное поведение. | CComponent |
| disableBehaviors() | Отключает все присоединенные поведения к данному компоненту. | CComponent |
| enableBehavior() | Включает присоединенное поведение. | CComponent |
| enableBehaviors() | Включает все присоединенные поведения к данному компоненту. | CComponent |
| enqueue() | Добавляет объект в конец очереди. | CQueue |
| evaluateExpression() | Вычисляет PHP выражение или обратный вызов в контексте данного компонента. | CComponent |
| getCount() | Возвращает количество элементов в очереди. | CQueue |
| getEventHandlers() | Возвращает список присоединенных обработчиков событий для события. | CComponent |
| getIterator() | Возвращает итератор для перебора элементов в очереди. | CQueue |
| hasEvent() | Определяет, определено ли событие. | CComponent |
| hasEventHandler() | Проверяет, имеет ли указанное событие присоединенные обработчики. | CComponent |
| hasProperty() | Определяет, определено ли свойство. | CComponent |
| peek() | Возвращает элемент в начале очереди. | CQueue |
| raiseEvent() | Вызывает событие. | CComponent |
| toArray() | CQueue |
Подробное описание свойств
count свойство только для чтения
public integer getCount()
Возвращает количество элементов в очереди.
iterator свойство только для чтения
public Iterator getIterator()
Возвращает итератор для перебора элементов в очереди. Этот метод требуется интерфейсом IteratorAggregate.
Подробное описание методов
__construct() метод
public void __construct(array $data=NULL) | ||
| $data | array | начальные данные. По умолчанию null, что означает отсутствие инициализации. |
public function __construct($data=null)
{
if($data!==null)
$this->copyFrom($data);
}
Конструктор. Инициализирует очередь массивом или итерируемым объектом.
clear() метод
public void clear() |
public function clear()
{
$this->_c=0;
$this->_d=array();
}
Удаляет все элементы из очереди.
contains() метод
public boolean contains(mixed $item) | ||
| $item | mixed | элемент |
| {возвращает} | boolean | содержит ли очередь элемент |
public function contains($item)
{
return array_search($item,$this->_d,true)!==false;
}
copyFrom() метод
public void copyFrom(mixed $data) | ||
| $data | mixed | данные для копирования, должны быть массивом или объектом, реализующим Traversable |
public function copyFrom($data)
{
if(is_array($data) || ($data instanceof Traversable))
{
$this->clear();
foreach($data as $item)
{
$this->_d[]=$item;
++$this->_c;
}
}
elseif($data!==null)
throw new CException(Yii::t('yii','Queue data must be an array or an object implementing Traversable.'));
}
Копирует итерируемые данные в очередь. Обратите внимание, что существующие данные в списке будут сначала очищены.
count() метод
public integer count() | ||
| {return} | целое число | количество элементов в очереди. |
public function count()
{
return $this->getCount();
}
Возвращает количество элементов в очереди. Этот метод необходим для интерфейса Countable.
dequeue() метод
public mixed dequeue() | ||
| {return} | смешанный тип | элемент в начале очереди |
public function dequeue()
{
if($this->_c===0)
throw new CException(Yii::t('yii','The queue is empty.'));
else
{
--$this->_c;
return array_shift($this->_d);
}
}
Удаляет и возвращает объект в начале очереди.
enqueue() метод
public void enqueue(mixed $item) | ||
| $item | смешанный тип | элемент, который будет добавлен в конец очереди |
public function enqueue($item)
{
++$this->_c;
$this->_d[]=$item;
}
Добавляет объект в конец очереди.
getCount() метод
public integer getCount() | ||
| {return} | целое число | количество элементов в очереди |
public function getCount()
{
return $this->_c;
}
Возвращает количество элементов в очереди.
getIterator() метод
public Iterator getIterator() | ||
| {return} | Итератор | итератор для обхода элементов в очереди. |
public function getIterator()
{
return new CQueueIterator($this->_d);
}
Возвращает итератор для обхода элементов в очереди. Этот метод необходим для интерфейса IteratorAggregate.
peek() метод
public mixed peek() | ||
| {return} | смешанный тип | элемент в начале очереди |
public function peek()
{
if($this->_c===0)
throw new CException(Yii::t('yii','The queue is empty.'));
else
return $this->_d[0];
}
Возвращает элемент в начале очереди.
toArray() метод
public array toArray() | ||
| {return} | массив | список элементов в очереди |
public function toArray()
{
return $this->_d;
}
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CQueue