【PHP8.x】nextメソッドの使い方
nextメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
『nextメソッドは、イテレータの内部ポインタを、指定されたフィルタ条件を満たす次の要素へ移動させる処理を実行するメソッドです。このメソッドはPHPの標準インターフェースであるIteratorを実装しており、foreachループなどでイテレータを反復処理する際に内部的に呼び出されます。通常のイテレータのnextメソッドが単純にポインタを一つ進めるのに対し、CallbackFilterIteratorのnextメソッドはより高度な動作をします。まず、内部のイテレータのポインタを次の要素に進めます。その後、その要素がコンストラクタで指定されたコールバック関数の条件を満たすかどうかを評価します。もし条件を満たさない(コールバック関数がfalseを返す)場合、条件を満たす有効な要素が見つかるか、イテレータの終端に達するまで、自動的に次の要素へと移動を繰り返します。この仕組みにより、開発者はフィルタリングされた後の要素だけを効率的に取得することが可能になります。
構文(syntax)
1<?php 2 3// フィルタリング対象となるArrayIteratorオブジェクトを生成します 4$arrayIterator = new ArrayIterator([10, 15, 20, 25, 30]); 5 6// 20以上の値のみを有効とするCallbackFilterIteratorオブジェクトを生成します 7$filterIterator = new CallbackFilterIterator( 8 $arrayIterator, 9 function ($current) { 10 return $current >= 20; 11 } 12); 13 14// イテレータを最初の有効な要素(20)に移動します 15$filterIterator->rewind(); 16echo $filterIterator->current(); // 出力: 20 17echo PHP_EOL; 18 19// next()メソッドを呼び出し、イテレータを次の有効な要素(25)に進めます 20$filterIterator->next(); 21 22// 現在の要素(25)を出力します 23echo $filterIterator->current(); // 出力: 25
引数(parameters)
引数なし
引数はありません
戻り値(return)
戻り値なし
戻り値はありません