Prinsip kerja
1. Sebelum iterasi pertama, jalankan metode iterator::rewind().
Berjalan hanya sekali, mengembalikan elemen pertama dari iterator, tetapi metode ini tidak memiliki nilai kembalian
2. Verifikasi apakah elemen pertama valid.
Metode otentikasi dapat disesuaikan. Jika nilai kembalian benar, eksekusi dilanjutkan; jika nilai kembalian salah, iterasi dihentikan.
3. foreach terus memanggil Iterator.
Mengembalikan kunci dan nilai fitur yang ditentukan.
4. Metode badan foreach
var_dump($kunci,$nilai)
5. Setelah setiap iterasi, panggil Iterator untuk menentukan elemen berikutnya dan ulangi langkah kedua.
Contoh
string(18) "myIterator::rewind" //Panggil metode rewind sebelum iterasi dimulai, kembali ke elemen pertama iterator, dan jalankan $this->position = 1; string(17) "myIterator::valid" //Verifikasi apakah elemen saat ini $this->array[1] valid, dan lanjutkan eksekusi jika valid; string(19) "myIterator::current" // Mengembalikan nilai yang sesuai dengan elemen saat ini $this->array[0]='firstelement' string(15) "myIterator::key" // Mengembalikan kunci elemen saat ini $this->position = 1 int(1) //var_dump($kunci) string(12) "elemen kedua" //var_dump($nilai) string(16) "myIterator::next" //Maju ke elemen berikutnya++$this->position=2 string(17) "myIterator::valid" //Verifikasi apakah elemen saat ini $this->array[2] valid, dan lanjutkan eksekusi jika valid; string(19) "myIterator::current" //Ulangi langkah sebelumnya string(15) "myIterator::key" //Ulangi langkah sebelumnya int(2) //Ulangi langkah sebelumnya string(11) "laselement" //Ulangi langkah sebelumnya string(16) "myIterator::next" //Maju ke elemen berikutnya++$this->position=3 string(17) "myIterator::valid" //Verifikasi apakah elemen saat ini $this->array[3] valid, keluar dari traversal jika tidak valid
Di atas adalah analisa prinsip kerja iterator PHP, semoga bermanfaat bagi semuanya.