บทนำ
Interface IteratorAggregate extends abstract Traversable interface ถูก implement โดยคลาสเพื่อสร้าง external iterator Interface นี้มี abstract method หนึ่งชื่อ getIterator
ไวยากรณ์
IteratorAggregate extends Traversable { abstract public getIterator ( void ) : Traversable }เมธอด
IteratorAggregate::getIterator - Retrieve an external iterator
ฟังก์ชันนี้ไม่มีพารามิเตอร์ และคืนค่า instance ของ object ที่ implement Iterator หรือ Traversable
IteratorAggregate Example
ใน PHP script ต่อไปนี้ คลาสที่ implement IteratorAggregate interface มีอาร์เรย์เป็น property เมธอด getIterator() คืนค่า object ArrayIterator จากอาร์เรย์นี้ สามารถวนลูปอาร์เรย์ด้วย foreach loop
ตัวอย่าง
<?php class myIterator implements IteratorAggregate { public $arr; public function __construct() { $this->arr = array(10,20,30,40); } public function getIterator() { return new ArrayIterator($this->arr); } } $obj = new myIterator(); foreach($obj as $key => $value) { echo $key . "=>" . $value . "\n"; } ?>ผลลัพธ์
การวนลูป property array แสดงผลดังนี้
0=>10 1=>20 2=>30 3=>40