Рекурсивный акроним словосочетания «PHP: Hypertext Preprocessor»
Добро пожаловать на форум PHP программистов!
За последние 24 часа нас посетили 16739 программистов и 1628 роботов. Сейчас ищут 1532 программиста ...
Интерфейс Iterator
Вернуться к: Встроенные интерфейсы и классы
(PHP 5 >= 5.0.0, PHP 7)
Введение
Интерфейс для внешних итераторов или объектов, которые могут повторять себя изнутри.
Обзор интерфейсов
Предопределенные итераторы
PHP уже предоставляет некоторые итераторы для многих ежедневных задач. См. список итераторов SPL для более детальной информации.
Примеры
Пример #1 Основы использования
Этот пример демонстрирует в каком порядке вызываются методы, когда используется с итератором оператор foreach.
<?php
class myIterator implements Iterator {
private $position = 0;
private $array = array(
"firstelement",
"secondelement",
"lastelement",
);
public function __construct() {
$this->position = 0;
}
function rewind() {
var_dump(__METHOD__);
$this->position = 0;
}
function current() {
var_dump(__METHOD__);
return $this->array[$this->position];
}
function key() {
var_dump(__METHOD__);
return $this->position;
}
function next() {
var_dump(__METHOD__);
++$this->position;
}
function valid() {
var_dump(__METHOD__);
return isset($this->array[$this->position]);
}
}
$it = new myIterator;
foreach($it as $key => $value) {
var_dump($key, $value);
echo "\n";
}
?>
Результатом выполнения данного примера будет что-то подобное:
string(18) "myIterator::rewind" string(17) "myIterator::valid" string(19) "myIterator::current" string(15) "myIterator::key" int(0) string(12) "firstelement" string(16) "myIterator::next" string(17) "myIterator::valid" string(19) "myIterator::current" string(15) "myIterator::key" int(1) string(13) "secondelement" string(16) "myIterator::next" string(17) "myIterator::valid" string(19) "myIterator::current" string(15) "myIterator::key" int(2) string(11) "lastelement" string(16) "myIterator::next" string(17) "myIterator::valid"
Содержание
- Iterator::current — Возвращает текущий элемент
- Iterator::key — Возвращает ключ текущего элемента
- Iterator::next — Переходит к следующему элементу
- Iterator::rewind — Возвращает итератор на первый элемент
- Iterator::valid — Проверка корректности позиции
Вернуться к: Встроенные интерфейсы и классы