Ben IteratorIterator sınıf aslında ne başımı alamıyorum olabilir gibi deneyin. Ben motor, kullanarak foreach döngü and Seni IteratorIterator bir Iterasyon içine Traversable olan her şeyi dönüştürmek gerekiyordu olduğunu fark edebilirsiniz ama beni yaşam için nasıl anlayamıyorum bilir böylece sınıflar Traversable uygulayabilirsiniz anlıyorum.
Örneğin, PDOStatement class alın; nasıl standart Iterator yöntemleri (sonraki, anahtar, vb, geri sarma) PDOStatement yineleme izin uygulanmıştır olurdu?
Benim soru belirsiz Üzgünüm, ben sadece bu sınıf için tam nedenini kavramak için mücadele ediyorum ve bunun üzerine belgeler yetersizdir.
Teşekkürler,
Irade
Güncelleme: Phpt dosyaları geçiyor, ben IteratorIterator kullanan bir testi bulundu:
<?php
$root = simplexml_load_string('<?xml version="1.0"?>
<root>
<child>Hello</child>
<child>World</child>
</root>
');
foreach (new IteratorIterator($root->child) as $child) {
echo $child."\n";
}
?>
Beklenen çıktısı:
Hello
World
Gerçekten IteratorIterator yapı bir argüman olarak $ root-> çocuğu alır ve nasıl alt öğeler üzerinde yineleme için nasıl yönettiğini takip etmiyorum.