CStack
| Пакет | system.collections |
|---|---|
| Наследование | class CStack » CComponent |
| Реализует | IteratorAggregate, Traversable, Countable |
| С версии | 1.0 |
| Исходный код | framework/collections/CStack.php |
Реализованы типичные операции стека, включая push(), pop() и peek(). Кроме того, contains() можно использовать для проверки, содержится ли элемент в стеке. Чтобы получить количество элементов в стеке, проверьте свойство Count.
Элементы стека можно перебирать с помощью foreach следующим образом,
foreach($stack as $item) ...
Свойства общедоступные
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| count | integer | Возвращает количество элементов в стеке. | CStack |
| iterator | Iterator | Возвращает итератор для перебора элементов в стеке. | CStack |
Методы общедоступные
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | CComponent |
| __construct() | Конструктор. | CStack |
| __get() | Возвращает значение свойства, список обработчиков событий или поведение на основе его имени. | CComponent |
| __isset() | Проверяет, является ли значение свойства null. | CComponent |
| __set() | Устанавливает значение свойства компонента. | CComponent |
| __unset() | Устанавливает свойство компонента в null. | CComponent |
| asa() | Возвращает объект поведения с указанным именем. | CComponent |
| attachBehavior() | Присоединяет поведение к этому компоненту. | CComponent |
| attachBehaviors() | Присоединяет список поведений к компоненту. | CComponent |
| attachEventHandler() | Присоединяет обработчик событий к событию. | CComponent |
| canGetProperty() | Определяет, можно ли прочитать свойство. | CComponent |
| canSetProperty() | Определяет, можно ли установить свойство. | CComponent |
| clear() | Удаляет все элементы из стека. | CStack |
| contains() | CStack | |
| copyFrom() | Копирует данные из итерируемого источника в стек. | CStack |
| count() | Возвращает количество элементов в стеке. | CStack |
| detachBehavior() | Отсоединяет поведение от компонента. | CComponent |
| detachBehaviors() | Отсоединяет все поведения от компонента. | CComponent |
| detachEventHandler() | Отсоединяет существующего обработчика событий. | CComponent |
| disableBehavior() | Отключает присоединенное поведение. | CComponent |
| disableBehaviors() | Отключает все присоединенные к этому компоненту поведения. | CComponent |
| enableBehavior() | Включает присоединенное поведение. | CComponent |
| enableBehaviors() | Включает все присоединенные к этому компоненту поведения. | CComponent |
| evaluateExpression() | Вычисляет PHP-выражение или обратный вызов в контексте этого компонента. | CComponent |
| getCount() | Возвращает количество элементов в стеке. | CStack |
| getEventHandlers() | Возвращает список присоединённых обработчиков событий для события. | CComponent |
| getIterator() | Возвращает итератор для перебора элементов в стеке. | CStack |
| hasEvent() | Определяет, определено ли событие. | CComponent |
| hasEventHandler() | Проверяет, есть ли присоединенные обработчики для события с указанным именем. | CComponent |
| hasProperty() | Определяет, определено ли свойство. | CComponent |
| peek() | Возвращает элемент вверху стека. | CStack |
| pop() | Извлекает элемент из вершины стека. | CStack |
| push() | Добавляет элемент в стек. | CStack |
| raiseEvent() | Вызывает событие. | CComponent |
| toArray() | CStack |
Подробное описание свойств
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 | элемент |
| {return} | 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','Stack data must be an array or an object implementing Traversable.'));
}
Копирует данные из итерируемого объекта в стек. Обратите внимание, что существующие данные в списке будут сначала очищены.
count() метод
public integer count() | ||
| {return} | целое число | количество элементов в стеке. |
public function count()
{
return $this->getCount();
}
Возвращает количество элементов в стеке. Этот метод необходим для интерфейса Countable.
getCount() метод
public integer getCount() | ||
| {return} | целое число | количество элементов в стеке |
public function getCount()
{
return $this->_c;
}
Возвращает количество элементов в стеке.
getIterator() метод
public Iterator getIterator() | ||
| {return} | Итератор | итератор для обхода элементов в стеке. |
public function getIterator()
{
return new CStackIterator($this->_d);
}
Возвращает итератор для обхода элементов в стеке. Этот метод необходим для интерфейса IteratorAggregate.
peek() метод
public mixed peek() | ||
| {return} | смешанный тип | элемент в верхней части стека |
public function peek()
{
if($this->_c)
return $this->_d[$this->_c-1];
else
throw new CException(Yii::t('yii','The stack is empty.'));
}
Возвращает элемент в верхней части стека. В отличие от pop(), этот метод не удаляет элемент из стека.
pop() метод
public mixed pop() | ||
| {return} | смешанный тип | элемент в верхней части стека |
public function pop()
{
if($this->_c)
{
--$this->_c;
return array_pop($this->_d);
}
else
throw new CException(Yii::t('yii','The stack is empty.'));
}
Извлекает элемент из верхней части стека.
push() метод
public void push(mixed $item) | ||
| $item | смешанный тип | элемент, который нужно поместить в стек |
public function push($item)
{
++$this->_c;
$this->_d[]=$item;
}
Помещает элемент в стек.
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/CStack