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

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

作成日: 更新日:

基本的な使い方

『validメソッドは、現在のイテレータの位置が有効かどうかをチェックするメソッドです。LimitIteratorは、既存のイテレータに対して、指定した開始位置(オフセット)から特定の個数の要素だけを反復処理の対象とするためのクラスです。このvalidメソッドは、その反復処理がまだ続けられる状態にあるかを判定する役割を担います。具体的には、LimitIteratorが内部で保持している元のイテレータの現在の位置が有効であり、かつ、コンストラクタで設定された取得件数の上限にまだ達していない場合にtrueを返します。一方で、元のイテレータが終端に達した場合や、指定された件数分の要素をすべて取得し終えた場合にはfalseを返します。このメソッドは、foreachループのような構文で内部的に呼び出され、ループを継続するか終了するかを決定するために使用されます。開発者がこのメソッドを直接呼び出す機会は少ないですが、イテレータの動作原理を理解する上で重要な要素となります。』

構文(syntax)

1<?php
2
3// 1. イテレータの元になる配列を作成します。
4$array = ['Apple', 'Banana', 'Cherry', 'Date', 'Elderberry'];
5$iterator = new ArrayIterator($array);
6
7// 2. 2番目の要素から3つ分だけを対象とするLimitIteratorを作成します (オフセット1, カウント3)。
8$limitIterator = new LimitIterator($iterator, 1, 3);
9
10// 3. ループの条件式で valid() を使い、イテレータが有効な範囲を指しているか確認します。
11while ($limitIterator->valid()) {
12    // 4. 有効な場合、キーと値を取得して表示します。
13    echo $limitIterator->key() . ": " . $limitIterator->current() . PHP_EOL;
14
15    // 5. 次の要素に進めます。
16    $limitIterator->next();
17}

引数(parameters)

引数なし

引数はありません

戻り値(return)

bool

現在、イテレータが有効な要素を指しているかどうかを示す真偽値を返します。trueであれば有効な要素があり、falseであれば要素はありません。

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