Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung des Beispielcodes des Iterator-Musters der PHP-Klasse

Detaillierte Erläuterung des Beispielcodes des Iterator-Musters der PHP-Klasse

黄舟
黄舟Original
2017-03-24 10:12:411148Durchsuche

Hier geht es um die integrierte Schnittstelle Iterator von PHP. PHP5 beginnt mit der Unterstützung der Schnittstelle und verfügt über eine integrierte Iterator-Schnittstelle Sie definieren eine Klasse und implementieren die Iterator-Schnittstelle, dann ist Ihr KlassenObjekt ZEND_ITER_OBJECT, andernfalls ist es ZEND_ITER_PLAIN_OBJECT.

Für die Klasse ZEND_ITER_PLAIN_OBJECT erhält foreach den Standardwert des Objekts über HASH_OF AttributArray und führen Sie dann foreach für das Array aus.
Für das Klassenobjekt ZEND_ITER_OBJECT wird foreach durch Aufrufen der vom Objekt implementierten Iterator-Schnittstellenfunktionen ausgeführt, also , hierfür können Sie bei schriftlichen Testfragen folgende Antworten geben:

<?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;
}
?>

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Beispielcodes des Iterator-Musters der PHP-Klasse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn