php—Iterator interface

伊谢尔伦
Release: 2016-11-22 11:05:01
Original
1143 people have browsed it

You can iterate internally with your own external iterator or interface of a class.

Interface summary

Iterator extends Traversable {
    /* 方法 */
    abstract public mixed current ( void )
    abstract public scalar key ( void )
    abstract public void next ( void )
    abstract public void rewind ( void )
    abstract public boolean valid ( void )
}
Copy after login

Predefined iterators

PHP already provides some iterators for daily tasks, such as SPL iterators.

Example

Example #1 Basic usage

This example shows the calling sequence of iterator methods when using 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";
    }
?>
Copy after login

The output of the above routine is similar to:

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"
Copy after login

Method list

Iterator::current — Returns the current element

Iterator::key — Returns the key of the current element

Iterator::next — Moves forward to the next An element

Iterator::rewind — Returns the first element of the iterator

Iterator::valid — Checks whether the current position is valid


Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!