PHP 8.4.1 Released!

ArrayObject::getIterator

(PHP 5, PHP 7, PHP 8)

ArrayObject::getIteratorСоздаёт новый итератор из экземпляра класса ArrayObject

Описание

public ArrayObject::getIterator(): Iterator

Метод создаёт новый итератор для перебора элементов массива, который объект 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

Добавить

Примечания пользователей 1 note

up
0
doug at centraldesktop
11 years ago
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
To Top