PHP8.0上級試験の勉強をしています。
その中で分からないことがあったため、お聞きしたいです。
前提
模擬試験ページ https://study.prime-strategy.co.jp/study/ph8ex1/
模擬試験 問22 のある選択肢の中で、
“DirectoryIterator クラスは、SeekableIteratorを実装しているため foreach などが使える。”
という記述があります。
そして公式アニュアル https://www.php.net/manual/ja/class.directoryiterator.php
を読む限り、
PHP
1class DirectoryIterator extends SplFileInfo implements SeekableIterator {...}
の記述があるため、問題文のその一文は正しいと考えています。
疑問
しかし模擬試験について解説している2つのブログ記事ではどちらも
「DirectoryIterator は SeekableIterator を 実装していません。」と言い切っています。
【php8上級/準上級試験】模擬問題解説 問題22. Directory DirectoryIterator SeekableIterator – ntorelabo
https://ntorelabo.com/%E3%80%90php8%E4%B8%8A%E7%B4%9A-%E6%BA%96%E4%B8%8A%E7%B4%9A%E8%A9%A6%E9%A8%93%E3%80%91%E6%A8%A1%E6%93%AC%E5%95%8F%E9%A1%8C%E8%A7%A3%E8%AA%AC-%E5%95%8F%E9%A1%8C22-directoryiterator-seekableiterator/
【やさしく解説】PHP8上級試験の模擬問題(22) | TechNote
https://technote7.com/php8_mogi22/
公式マニュアルと突き合わせると「解説記事の方が怪しい」と思っていますが、
同意見の解説者が二人も居ることと、自分が未熟である点から、中々正解が分からずにいます。
かなり考えづらいことではありますが、
「公式マニュアルが完全に正しい」としたうえで、
「解説ブログ + 模擬試験」どちらも間違って捉えている可能性、、も考慮しています。
補足
PHP8上級試験が「8.1以降は試験に含まれない」ことから新しい仕様かと思いましたが、
本件の仕様は少なくともVer7から存在しているようです。
そのためバージョン差異による解説のズレでは無いと考えています。
質問内容
このことについて、何が誤りか、質問者(私)が何か誤解しているのか、
分かる方いましたら是非ご教示ください。
言葉足らずな点ありましたらご指摘いただきたいです。
追記いたします。
回答2件
あなたの回答
tips
プレビュー
2026/04/27 12:20