Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】eofメソッドの使い方

eofメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

eofメソッドは、PHPのSplFileObjectクラスに属し、ファイルポインタがファイルの終端(End Of File)に到達したかどうかを判定するために使用されるメソッドです。ファイルポインタとは、ファイル内の現在の読み書き位置を示す目印のようなもので、ファイルからデータを読み進めるとその位置が移動します。

このメソッドは、ファイルからデータを読み込む処理において、いつ読み込みを終了すべきかを判断する際に非常に重要な役割を果たします。例えば、ファイルの全行や全内容を繰り返し読み込むループ処理で、無限ループに陥ることを防ぎ、安全に処理を終了させるために利用されます。

具体的には、ファイルポインタがまだファイルの終端に達していない場合はブール値のfalseを返します。一方、ファイルポインタがすでに終端に到達し、これ以上読み取るべきデータがない状態になった場合はtrueを返します。

SplFileObjectクラスのfgets()fread()などのメソッドでファイルの内容を読み進めると、それに伴ってファイルポインタが移動します。このeof()メソッドは、そのような読み込み操作の後にファイルの状況を確認するために頻繁に呼び出されます。ファイルの入出力処理を正確に実装するために、このeof()メソッドの挙動を理解することは、システムエンジニアにとって基本的なスキルの一つです。

構文(syntax)

1<?php
2// 例のためのファイルを一時的に作成します。
3// このスクリプトを実行する前に、'example.txt' というファイルを作成しなくても動作します。
4$filename = 'example.txt';
5file_put_contents($filename, "Line 1\nLine 2\nLine 3\n");
6
7// SplFileObjectのインスタンスを作成し、ファイルを読み込みモードで開きます。
8// ファイルが存在しない場合はRuntimeExceptionが発生します。
9$file = new SplFileObject($filename, 'r');
10
11// ファイルポインタがファイルの終端(End Of File)に達していない間、ループを続けます。
12while (!$file->eof()) {
13    // ファイルから1行読み込み、その内容を出力します。
14    echo $file->fgets();
15}
16
17// ファイル操作が完了したら、一時的に作成したファイルを削除します。
18// 実際のアプリケーションでは、この処理は通常不要です。
19unlink($filename);

引数(parameters)

引数なし

引数はありません

戻り値(return)

bool

ファイルポインタがファイルの終端に達したかどうかを示します。ファイルの終端に達していればtrue、そうでなければfalseを返します。

関連コンテンツ

【PHP8.x】eofメソッドの使い方 | いっしー@Webエンジニア