Home > Backend Development > PHP Tutorial > Detailed explanation of the sample code of the Iterator pattern of the PHP class

Detailed explanation of the sample code of the Iterator pattern of the PHP class

黄舟
Release: 2023-03-06 21:30:01
Original
1205 people have browsed it

This is about PHP’s built-in interface Iterator. PHP5 begins to support interfaces, and has a built-in Iterator interface, so if you define A class and implements the Iterator interface, then your classobject is ZEND_ITER_OBJECT, otherwise it is ZEND_ITER_PLAIN_OBJECT.

For the ZEND_ITER_PLAIN_OBJECT class, foreach will obtain the default value of the object through HASH_OFAttributeArray, and then perform foreach on the array.
For the ZEND_ITER_OBJECT class object, the foreach will be performed by calling the Iterator interface related functions implemented by the object, so, for this For written test questions, you can give the following answers:

<?php
class sample implements Iterator
{
private $_items = array(1,2,3,4,5,6,7);

public function __construct() {
     ;//void
}
public function rewind() { reset($this->_items); }
public function current() { return current($this->_items); }
public function key() { return key($this->_items); }
public function next() { return next($this->_items); }
public function valid() { return ( $this->current() !== false ); }
}

$sa = new sample();
foreach($sa as $key => $val){
print $key . "=>" .$val;
}
?>
Copy after login

The above is the detailed content of Detailed explanation of the sample code of the Iterator pattern of the PHP class. For more information, please follow other related articles on the PHP Chinese website!

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