Dieser Artikel stellt hauptsächlich die Verwendung der PHP-Aggregat-Iterator-Schnittstelle IteratorAggregate vor und analysiert das Konzept, die Funktion, die Definition und die Verwendung der Aggregat-Iterator-Schnittstelle IteratorAggregate in Form von Beispielen kann jedem helfen.
PHP IteratorAggregate wird auch als Aggregatiterator bezeichnet. Es bietet eine Schnittstelle zum Erstellen externer Iteratoren. Die Schnittstellenzusammenfassung lautet wie folgt:
IteratorAggregate extends Traversable { abstract public Traversable getIterator ( void ) }
Implementiert Die getIterator-Methode muss eine Instanz einer Klasse zurückgeben, die die Iterator-Schnittstelle implementiert.
Beispielbeschreibung:
<?php /** * 利用聚合式迭代器,并返回一个实现了Iterator接口的类的实例 * * @author 疯狂老司机 */ class myData implements IteratorAggregate { public $one = "Public property one"; public $two = "Public property two"; public $three = "Public property three"; public function __construct() { $this->last = "last property"; } public function getIterator() { return new ArrayIterator($this); } } $obj = new myData; foreach($obj as $key => $value) { var_dump($key, $value); echo '<br>';// Linux:echo "\n"; } ?>
Ausgabe des obigen Beispiels:
string 'one' (length=3) string 'Public property one' (length=19) string 'two' (length=3) string 'Public property two' (length=19) string 'three' (length=5) string 'Public property three' (length=21) string 'last' (length=4) string 'last property' (length=13)
ArrayIterator Der Iterator kapselt das Objekt oder Array in eine Klasse, die über foreach betrieben werden kann. Weitere Informationen finden Sie in der Einführung zu SPL-Iteratoren.
Verwandte Empfehlungen:
php – IteratorAggregate-Schnittstelle
RxJava-Operator (8) Aggregate_PHP-Tutorial
PHP – Detaillierte Erläuterung der IteratorAggregate-Schnittstelle
Das obige ist der detaillierte Inhalt vonFreigabe zur Verwendung der PHP-aggregierten Iteratorschnittstelle IteratorAggregate. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!