オブジェクトとの比較ジェネレータの最大のメリットは、シンプルに書けることです。実装するのに比べて、必要な決まり文句の数がかなり少なくなります。ジェネレータを使ったコードのほうが、一般的に読みやすくなります。次の関数とクラスを比べてみましょう。これらはどちらも同じ働きをするものです。{fclose($this->fileHandle);}}?>しかし、柔軟性を実現するために犠牲にしていることもあります。ジェネレータは前方にしか進めないイテレータなので、いったん反復処理が始まれば巻き戻すことができません。これはつまり、同じジェネレータを何度も使い回せないということです。ジェネレータ関数を呼んでもう一度作り直す必要があります。