私は大規模な古いプロジェクトをリファクタリングしようとしていますが、気づいたことの 1 つは、さまざまな Iterator 実装の範囲です。
while($iterator->moveNext()) {
$item = $iterator->current();
// do something with $item;
}
for($iterator = getIterator(), $iterator->HasNext()) {
$item = $iterator->Next();
// do something with $item
}
while($item = $iterator->fetch()) {
// do something with item
}
または、許可するStandardPHPLibrary (SPL)イテレータでさえも
foreach($iterator as $item) {
// do something with $item
}
非常に多くの異なるイテレータ (コレクションをループするための異なる方法) を持つことは、強いコード臭のように思えます。私はすべてを SPL にリファクタリングする傾向があります。これらの Iterator の実装のいずれかに魅力的な利点はありますか?それとも純粋に個人的な好みの問題ですか?