ArrayIterator::getArrayCopy
(PHP 5 >= 5.0.0)
ArrayIterator::getArrayCopy — Возвращает копию массива
Описание
public array ArrayIterator::getArrayCopy
( void
)
Возвращает копию массива.
Внимание
К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.
Список параметров
У этой функции нет параметров.
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Другие базовые расширения
- Стандартная библиотека PHP (SPL)
- Итераторы
- Функция ArrayIterator::append() - Добавить элемент
- Функция ArrayIterator::asort() - Сортирует массив по значениям
- Функция ArrayIterator::__construct() - Создает ArrayIterator
- Функция ArrayIterator::count() - Посчитать количество элементов
- Функция ArrayIterator::current() - Возвращает текущий элемент в массиве
- Функция ArrayIterator::getArrayCopy() - Возвращает копию массива
- Функция ArrayIterator::getFlags() - Получает флаги
- Функция ArrayIterator::key() - Возвращает ключ текущего элемента массива
- Функция ArrayIterator::ksort() - Сортирует массив по ключам
- Функция ArrayIterator::natcasesort() - Сортирует массив "натурально", с учетом регистра
- Функция ArrayIterator::natsort() - Сортирует массив "натурально"
- Функция ArrayIterator::next() - Перемещает указатель за следующую запись
- Функция ArrayIterator::offsetExists() - Проверяет существует ли смещение
- Функция ArrayIterator::offsetGet() - Получает значение для смещения
- Функция ArrayIterator::offsetSet() - Устанавливает значение для смещения
- Функция ArrayIterator::offsetUnset() - Сбрасывает значение по смещению
- Функция ArrayIterator::rewind() - Перемещает указатель в начало массива
- Функция ArrayIterator::seek() - Перещает указатель на выбранную позицию
- Функция ArrayIterator::serialize() - Сериализует массив
- Функция ArrayIterator::setFlags() - Устанавливает флаги, управляющие поведением
- Функция ArrayIterator::uasort() - Сортировка, определенная пользователем
- Функция ArrayIterator::uksort() - Сортировка, определенная пользователем
- Функция ArrayIterator::unserialize() - Десериализация
- Функция ArrayIterator::valid() - Проверяет, содержит ли массив еще записи
Коментарии
the difference of this method and the direct assign the object to a value is as follows:
<?php
$b = array('name'=>'mengzhi','age'=>'12','city'=>'shanghai');
$a = new ArrayIterator($b);
$a->append(array('home'=>'china','work'=>'developer'));
$c = $a->getArrayCopy();
var_dump($a);
var_dump($c);
?>
result:
object(ArrayIterator)#1 (1) { ["storage":"ArrayIterator":private]=> array(4) { ["name"]=> string(7) "mengzhi" ["age"]=> string(2) "12" ["city"]=> string(8) "shanghai" [0]=> array(2) { ["home"]=> string(5) "china" ["work"]=> string(9) "developer" } } }
array(4) { ["name"]=> string(7) "mengzhi" ["age"]=> string(2) "12" ["city"]=> string(8) "shanghai" [0]=> array(2) { ["home"]=> string(5) "china" ["work"]=> string(9) "developer" } }
Just in case some of you out there do NOT know this:
(a). 'getArrayCopy()', returns a copy of the ORIGINAL array - iterator object. Therefore, using (for example) 'LimitIterator' on an array-object, and then calling 'getArrayCopy' afterwards, might not return the current (adjusted) object.
(b). Instead, use the 'iterator_to_array' function, in order to access, or return, the current state of the array-object-iterator (whatever). Using the example above (in '(a)'); passing the 'LimitIterator' object into 'iterator_to_array', should return the CURRENT, and NOT ORIGINAL state of your array (iterator object).