(PHP 5, PHP 7, PHP 8)
ArrayObject::getIterator — Создаёт новый итератор из экземпляра класса ArrayObject
Метод создаёт новый итератор для перебора элементов массива, который объект ArrayObject хранит внутренне. Метод возвращает или итератор по умолчанию — ArrayIterator , или итератор, который определили в конструкторе класса объекта массива. Итератор, который возвращается методом, реализует интерфейс Iterator .
Сигнатура функции не содержит параметров.
Метод возвращает итератор из объекта ArrayObject .
Пример #1 Пример создания итератора методом ArrayObject::getIterator()
<?php
$array = [
'1' => 'one',
'2' => 'two',
'3' => 'three',
];
$arrayobject = new ArrayObject($array);
$iterator = $arrayobject->getIterator();
while ($iterator->valid()) {
echo $iterator->key() . ' => ' . $iterator->current() . "\n";
$iterator->next();
}
?>Результат выполнения приведённого примера:
1 => one 2 => two 3 => three
ArrayObject iterator class requires a child of ArrayObject or ArrayIterator
<?php
class MyIterator implements Iterator {
public
function __construct(ArrayObject $array, $flags = 0) {
// ...
}
public
function current() {
// ..
}
public
function next() {
// ..
}
public
function key() {
// ..
}
public
function valid() {
// ..
}
public
function rewind() {
// ..
}
}
$obj = new ArrayObject(array(), 0, 'MyIterator');
$obj->getIterator();
?>
PHP Fatal error: ArrayObject::getIterator(): Internal compiler error, Class is not child of ArrayObject or ArrayIterator in php shell code on line 1