Рекурсивный акроним словосочетания «PHP: Hypertext Preprocessor»
Добро пожаловать на форум PHP программистов!
За последние 24 часа нас посетили 20770 программистов и 1674 робота. Сейчас ищут 1915 программистов ...
Интерфейс 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 — Проверка корректности позиции
Вернуться к: Встроенные интерфейсы и классы