
1. นอกจากนี้ยังเป็นตัววนซ้ำอีกด้วย เมื่อสร้างอินสแตนซ์แล้ว จะต้องส่งต่อไปยังตัววนซ้ำอื่นเพื่อจัดเก็บข้อมูลภายใน นั่นคือ InnerIterator การวนซ้ำภายใน
2. ฟังก์ชันตัววนซ้ำดั้งเดิมสามารถอัปเกรดได้โดยการสืบทอด IteratorIterator
พารามิเตอร์การสร้างจะต้องเป็นตัววนซ้ำ และลายเซ็นของพารามิเตอร์นั้นจำเป็นต้องมีออบเจ็กต์ที่ใช้อินเทอร์เฟซ Traversable
ตัวอย่าง
คลาส OutIterator ขยาย IteratorIterator
-
ฟังก์ชั่นสาธารณะย้อนกลับ ()
-
เสียงสะท้อน __วิธีการ__, PHP_EOL;
กลับผู้ปกครอง::ย้อนกลับ();
-
ฟังก์ชั่นสาธารณะถูกต้อง ()
-
เสียงสะท้อน __วิธีการ__, PHP_EOL;
กลับผู้ปกครอง::valid();
-
ฟังก์ชั่นสาธารณะปัจจุบัน ()
-
เสียงสะท้อน __วิธีการ__, PHP_EOL;
กลับ parent::current() '_suffix';
-
ปุ่มฟังก์ชั่นสาธารณะ ()
-
เสียงสะท้อน __วิธีการ__, PHP_EOL;
กลับผู้ปกครอง::key();
-
ฟังก์ชั่นสาธารณะต่อไป ()
-
เสียงสะท้อน __วิธีการ__, PHP_EOL;
กลับผู้ปกครอง::ถัดไป();
-
ฟังก์ชั่นสาธารณะ getInnerIterator()
-
เสียงสะท้อน __วิธีการ__, PHP_EOL;
กลับพาเรนต์::getInnerIterator();
-
-
$iterator = OutIterator ใหม่ (ArrayIterator ใหม่ ([1, 2, 3]));
foreach ($ตัววนซ้ำเป็น $k => $v) {
เสียงสะท้อน $k, ': ', $v, PHP_EOL;
-
// OutIterator::rewind
// OutIterator::valid
// OutIterator::current
// OutIterator::key
// 0: 1_suffix
// OutIterator::ถัดไป
// OutIterator::valid
// OutIterator::current
// OutIterator::key
// 1: 2_suffix
// OutIterator::ถัดไป
// OutIterator::valid
// OutIterator::current
// OutIterator::key
// 2: 3_suffix
// OutIterator::ถัดไป
// OutIterator::validข้างต้นคือความเข้าใจเกี่ยวกับตัววนซ้ำบรรจุภัณฑ์ PHP ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน คู่มือการเรียนรู้ PHP เพิ่มเติม: เครือข่ายซอร์สโค้ด