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

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

作成日: 更新日:

基本的な使い方

currentメソッドは、フィルタリング後のイテレータが指している現在の要素を返す処理を実行するメソッドです。このメソッドが所属するCallbackFilterIteratorクラスは、配列などの反復可能なデータ構造に対して、指定した条件(コールバック関数)に一致する要素だけを抽出するために使用されます。currentメソッドは、そのフィルタリング条件を満たした有効な要素のうち、イテレータの現在の位置にある値を具体的に取得する役割を担います。例えば、foreach構文を使ってイテレータをループ処理する際、各反復で個々の値を取り出すために、PHPの内部でこのメソッドが呼び出されます。イテレータのポインタはnextメソッドによって次の有効な要素へ移動し、currentメソッドがその要素の値を返します。このメソッドを直接呼び出す際は、事前にvalidメソッドで現在の位置が有効な要素を指しているかを確認することが一般的です。

構文(syntax)

1<?php
2
3$array = new ArrayIterator(['apple', 'banana', 'cherry', 'avocado']);
4
5// 'a' で始まる要素のみをフィルタリングするコールバック関数
6$filterCallback = function (string $current): bool {
7    return str_starts_with($current, 'a');
8};
9
10$iterator = new CallbackFilterIterator($array, $filterCallback);
11
12// イテレータをループ処理する
13foreach ($iterator as $value) {
14    // フィルタリングされた現在の要素を取得して表示する
15    // $value には $iterator->current() と同じ値が入る
16    echo $iterator->current() . PHP_EOL;
17}
18
19?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

mixed

CallbackFilterIterator::current()は、現在イテレータが指している要素を返します。この要素は、コールバック関数によってフィルタリングされた後、条件を満たした場合のみ取得できます。

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