Spec-Zone.ru › Yii 1.1

CList

Package system.collections
Inheritance class CList » CComponent
Implements IteratorAggregate, Traversable, ArrayAccess, Countable
Subclasses CFilterChain, CTypedList
Since 1.0
Source Code framework/collections/CList.php
CList реализует класс коллекции с индексами типа integer.

Вы можете получить доступ, добавить, вставить, удалить элемент, используя itemAt, add, insertAt, remove и removeAt. Для получения количества элементов в списке используйте getCount. CList также может использоваться как обычный массив следующим образом,
$list[]=$item;  // append at the end
$list[$index]=$item; // $index must be between 0 and $list->Count
unset($list[$index]); // remove the item at $index
if(isset($list[$index])) // if the list has an item at $index
foreach($list as $index=>$item) // traverse each item in the list
$n=count($list); // returns the number of items in the list


Чтобы расширить CList, выполнив дополнительные операции при каждой операции добавления или удаления (например, выполнение проверки типа), переопределите insertAt() и removeAt().

Публичные свойства

Property Type Description Defined By
count integer Возвращает количество элементов в списке. CList
iterator Iterator Возвращает итератор для обхода элементов в списке. CList
readOnly boolean указывает, является ли этот список доступным только для чтения. CList

Публичные методы

Method Description Defined By
__call() Вызывает именованный метод, который не является методом класса. CComponent
__construct() Конструктор. CList
__get() Возвращает значение свойства, список обработчиков событий или поведение на основе его имени. CComponent
__isset() Проверяет, является ли значение свойства null. CComponent
__set() Устанавливает значение свойства компонента. CComponent
__unset() Устанавливает свойство компонента в null. CComponent
add() Добавляет элемент в конец списка. CList
asa() Возвращает именованный объект поведения. CComponent
attachBehavior() Прикрепляет поведение к этому компоненту. CComponent
attachBehaviors() Прикрепляет список поведений к компоненту. CComponent
attachEventHandler() Прикрепляет обработчик событий к событию. CComponent
canGetProperty() Определяет, можно ли читать свойство. CComponent
canSetProperty() Определяет, можно ли установить свойство. CComponent
clear() Удаляет все элементы из списка. CList
contains() CList
copyFrom() Копирует итерируемые данные в список. CList
count() Возвращает количество элементов в списке. CList
detachBehavior() Отсоединяет поведение от компонента. CComponent
detachBehaviors() Отсоединяет все поведения от компонента. CComponent
detachEventHandler() Отсоединяет существующий обработчик событий. CComponent
disableBehavior() Отключает прикрепленное поведение. CComponent
disableBehaviors() Отключает все поведения, прикрепленные к этому компоненту. CComponent
enableBehavior() Включает прикрепленное поведение. CComponent
enableBehaviors() Включает все поведения, прикрепленные к этому компоненту. CComponent
evaluateExpression() Вычисляет выражение PHP или обратный вызов в контексте этого компонента. CComponent
getCount() Возвращает количество элементов в списке. CList
getEventHandlers() Возвращает список прикрепленных обработчиков событий для события. CComponent
getIterator() Возвращает итератор для обхода элементов в списке. CList
getReadOnly() Возвращает, является ли этот список доступным только для чтения. По умолчанию false. CList
hasEvent() Определяет, определено ли событие. CComponent
hasEventHandler() Проверяет, есть ли у именованного события прикрепленные обработчики. CComponent
hasProperty() Определяет, определено ли свойство. CComponent
indexOf() CList
insertAt() Вставляет элемент в указанную позицию. CList
itemAt() Возвращает элемент по указанному смещению. CList
mergeWith() Сливает итерируемые данные в карту. CList
offsetExists() Возвращает, существует ли элемент по указанному смещению. CList
offsetGet() Возвращает элемент по указанному смещению. CList
offsetSet() Устанавливает элемент по указанному смещению. CList
offsetUnset() Сбрасывает элемент по указанному смещению. CList
raiseEvent() Вызывает событие. CComponent
remove() Удаляет элемент из списка. CList
removeAt() Удаляет элемент в указанной позиции. CList
toArray() CList

Защищенные методы

Method Description Defined By
setReadOnly() Устанавливает, является ли этот список доступным только для чтения CList

Подробное описание свойств

count свойство только для чтения

public integer getCount()

Возвращает количество элементов в списке.

iterator свойство только для чтения

public Iterator getIterator()

Возвращает итератор для обхода элементов в списке. Этот метод требуется интерфейсом IteratorAggregate.

readOnly свойство

public boolean getReadOnly()
protected void setReadOnly(boolean $value)

указывает, является ли этот список доступным только для чтения. По умолчанию false.

Подробное описание методов

__construct() метод

public void __construct(array $data=NULL, boolean $readOnly=false)
$data array исходные данные. По умолчанию null, что означает отсутствие инициализации.
$readOnly boolean является ли список только для чтения
Исходный код: framework/collections/CList.php#60 (показать)
public function __construct($data=null,$readOnly=false)
{
    if(
$data!==null)
        
$this->copyFrom($data);
    
$this->setReadOnly($readOnly);
}

Конструктор. Инициализирует список массивом или итерируемым объектом.

add() метод

public integer add(mixed $item)
$item mixed новый элемент
{return} integer нумерация добавляемого элемента (от 0)
Исходный код: framework/collections/CList.php#135 (показать)
public function add($item)
{
    
$this->insertAt($this->_c,$item);
    return 
$this->_c-1;
}

Добавляет элемент в конец списка.

clear() метод

public void clear()
Исходный код: framework/collections/CList.php#220 (показать)
public function clear()
{
    for(
$i=$this->_c-1;$i>=0;--$i)
        
$this->removeAt($i);
}

Удаляет все элементы из списка.

contains() метод

public boolean contains(mixed $item)
$item mixed элемент
{return} boolean содержит ли список элемент
Исходный код: framework/collections/CList.php#230 (показать)
public function contains($item)
{
    return 
$this->indexOf($item)>=0;
}

copyFrom() метод

public void copyFrom(mixed $data)
$data mixed данные для копирования, должны быть массивом или объектом, реализующим интерфейс Traversable
Исходный код: framework/collections/CList.php#261 (показать)
public function copyFrom($data)
{
    if(
is_array($data) || ($data instanceof Traversable))
    {
        if(
$this->_c>0)
            
$this->clear();
        if(
$data instanceof CList)
            
$data=$data->_d;
        foreach(
$data as $item)
            
$this->add($item);
    }
    elseif(
$data!==null)
        throw new 
CException(Yii::t('yii','List data must be an array or an object implementing Traversable.'));
}

Копирует итерируемые данные в список. Примечание: существующие данные в списке будут сначала очищены.

count() метод

public integer count()
{return} integer количество элементов в списке.
Исходный код: framework/collections/CList.php#98 (показать)
public function count()
{
    return 
$this->getCount();
}

Возвращает количество элементов в списке. Этот метод требуется интерфейсом Countable.

getCount() метод

public integer getCount()
{return} integer количество элементов в списке
Исходный код: framework/collections/CList.php#107 (показать)
public function getCount()
{
    return 
$this->_c;
}

Возвращает количество элементов в списке.

getIterator() метод

public Iterator getIterator()
{return} Iterator итератор для обхода элементов списка.
Исходный код: framework/collections/CList.php#88 (показать)
public function getIterator()
{
    return new 
CListIterator($this->_d);
}

Возвращает итератор для обхода элементов списка. Этот метод требуется интерфейсом IteratorAggregate.

getReadOnly() метод

public boolean getReadOnly()
{return} boolean является ли список только для чтения (по умолчанию false).
Исходный код: framework/collections/CList.php#70 (показать)
public function getReadOnly()
{
    return 
$this->_r;
}

indexOf() метод

public integer indexOf(mixed $item)
$item mixed элемент
{return} integer индекс элемента в списке (индексация с 0), -1 если не найден.
Исходный код: framework/collections/CList.php#239 (показать)
public function indexOf($item)
{
    if((
$index=array_search($item,$this->_d,true))!==false)
        return 
$index;
    else
        return -
1;
}

insertAt() метод

public void insertAt(integer $index, mixed $item)
$index integer указанная позиция.
$item mixed новый элемент
Исходный код: framework/collections/CList.php#149 (показать)
public function insertAt($index,$item)
{
    if(!
$this->_r)
    {
        if(
$index===$this->_c)
            
$this->_d[$this->_c++]=$item;
        elseif(
$index>=0 && $index<$this->_c)
        {
            
array_splice($this->_d,$index,0,array($item));
            
$this->_c++;
        }
        else
            throw new 
CException(Yii::t('yii','List index "{index}" is out of bound.',
                array(
'{index}'=>$index)));
    }
    else
        throw new 
CException(Yii::t('yii','The list is read only.'));
}

Вставляет элемент в указанную позицию. Исходный элемент в этой позиции и последующие смещаются на одну позицию.

itemAt() метод

public mixed itemAt(integer $index)
$index integer индекс элемента
{return} mixed элемент по индексу
Исходный код: framework/collections/CList.php#119 (показать)
public function itemAt($index)
{
    if(isset(
$this->_d[$index]))
        return 
$this->_d[$index];
    elseif(
$index>=0 && $index<$this->_c) // in case the value is null
        
return $this->_d[$index];
    else
        throw new 
CException(Yii::t('yii','List index "{index}" is out of bound.',
            array(
'{index}'=>$index)));
}

Возвращает элемент по указанному смещению. Этот метод идентичен offsetGet.

mergeWith() метод

public void mergeWith(mixed $data)
$data mixed данные для слияния, должны быть массивом или объектом, реализующим интерфейс Traversable
Исходный код: framework/collections/CList.php#282 (показать)
public function mergeWith($data)
{
    if(
is_array($data) || ($data instanceof Traversable))
    {
        if(
$data instanceof CList)
            
$data=$data->_d;
        foreach(
$data as $item)
            
$this->add($item);
    }
    elseif(
$data!==null)
        throw new 
CException(Yii::t('yii','List data must be an array or an object implementing Traversable.'));
}

Сливает итерируемые данные в список. Новые данные будут добавлены в конец существующих.

offsetExists() метод

public boolean offsetExists(integer $offset)
$offset integer смещение для проверки
{return} boolean
Исходный код: framework/collections/CList.php#301 (показать)
public function offsetExists($offset)
{
    return (
$offset>=0 && $offset<$this->_c);
}

Возвращает, существует ли элемент по указанному смещению. Этот метод требуется интерфейсом ArrayAccess.

offsetGet() метод

public mixed offsetGet(integer $offset)
$offset integer смещение для получения элемента.
{return} mixed элемент по смещению
Исходный код: framework/collections/CList.php#313 (показать)
public function offsetGet($offset)
{
    return 
$this->itemAt($offset);
}

Возвращает элемент по указанному смещению. Этот метод требуется интерфейсом ArrayAccess.

offsetSet() метод

public void offsetSet(integer $offset, mixed $item)
$offset integer смещение для установки элемента
$item mixed значение элемента
Исходный код: framework/collections/CList.php#324 (показать)
public function offsetSet($offset,$item)
{
    if(
$offset===null || $offset===$this->_c)
        
$this->insertAt($this->_c,$item);
    else
    {
        
$this->removeAt($offset);
        
$this->insertAt($offset,$item);
    }
}

Устанавливает элемент по указанному смещению. Этот метод требуется интерфейсом ArrayAccess.

offsetUnset() метод

public void offsetUnset(integer $offset)
$offset целое число смещение для удаления элемента
Исходный код: framework/collections/CList.php#340 (показать)
public function offsetUnset($offset)
{
    
$this->removeAt($offset);
}

Удаляет элемент по указанному смещению. Этот метод требуется интерфейсом ArrayAccess.

remove() метод

public integer remove(mixed $item)
$item смешанный тип удаляемый элемент.
{return} целое число индекс, в котором удаляется элемент
Исходный код: framework/collections/CList.php#176 (показать)
public function remove($item)
{
    if((
$index=$this->indexOf($item))>=0)
    {
        
$this->removeAt($index);
        return 
$index;
    }
    else
        return 
false;
}

Удаляет элемент из списка. Список сначала ищет элемент. Первый найденный элемент удаляется из списка.

removeAt() метод

public mixed removeAt(integer $index)
$index целое число индекс удаляемого элемента.
{return} смешанный тип удаленный элемент.
Исходный код: framework/collections/CList.php#193 (показать)
public function removeAt($index)
{
    if(!
$this->_r)
    {
        if(
$index>=0 && $index<$this->_c)
        {
            
$this->_c--;
            if(
$index===$this->_c)
                return 
array_pop($this->_d);
            else
            {
                
$item=$this->_d[$index];
                
array_splice($this->_d,$index,1);
                return 
$item;
            }
        }
        else
            throw new 
CException(Yii::t('yii','List index "{index}" is out of bound.',
                array(
'{index}'=>$index)));
    }
    else
        throw new 
CException(Yii::t('yii','The list is read only.'));
}

Удаляет элемент в указанной позиции.

setReadOnly() метод

protected void setReadOnly(boolean $value)
$value булево является ли этот список только для чтения
Исходный код: framework/collections/CList.php#78 (показать)
protected function setReadOnly($value)
{
    
$this->_r=$value;
}

toArray() метод

public array toArray()
{return} массив список элементов в массиве
Исходный код: framework/collections/CList.php#250 (показать)
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/CList

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API