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

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

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

作成日: 更新日:

基本的な使い方

currentメソッドは、SplFileObjectオブジェクトが現在指し示しているファイルの行の内容を取得するメソッドです。

SplFileObjectクラスは、PHPにおいてファイルをオブジェクト指向的に操作するためのクラスで、特にファイルを1行ずつ処理する際に便利な機能を提供します。currentメソッドは、このSplFileObjectが内部的に管理しているファイルポインタが現在指している位置の1行全体を文字列として返します。取得される行には、多くの場合、行末の改行文字も含まれています。

このメソッドの重要な点は、ファイルポインタ自体は移動しないことです。つまり、currentメソッドを呼び出しても、次に読み込む行の位置は変わりません。ファイルポインタを次の行へ進めるには、通常、同じSplFileObjectクラスのnextメソッドを使用する必要があります。SplFileObjectオブジェクトをforeachループで扱う際には、このcurrentメソッドとnextメソッドが内部的に連携し、ファイルを先頭から順に1行ずつ読み進める仕組みが動作しています。

ファイルが既に終端に達している場合や、ファイルの読み込みでエラーが発生した場合には、このメソッドはfalseを返すことがあります。currentメソッドを活用することで、ファイルの内容を現在のポインタ位置から容易に取得し、データの解析や処理を行うことが可能になります。ファイル処理において現在の行データを参照するための基本的な機能を提供するメソッドです。

構文(syntax)

1<?php
2// 一時ファイルを作成し、テストデータを書き込む
3$filename = 'example.txt';
4file_put_contents($filename, "Line 1: Hello PHP\nLine 2: System Engineering");
5
6// SplFileObject のインスタンスを作成
7$file = new SplFileObject($filename);
8
9// current() メソッドで現在の行(ファイルポインタが指す行)の内容を取得
10// SplFileObject は初期状態でファイルの先頭(最初の行)を指しています。
11$currentLineContent = $file->current();
12
13// 取得した行の内容を表示
14echo $currentLineContent;
15
16// 後処理として一時ファイルを削除
17unlink($filename);
18?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

mixed

SplFileObject::current は、現在の行の内容を文字列として返します。ファイルポインタが EOF(End Of File)を過ぎている場合は false を返します。