関数の概要
PHPの prev 関数は、配列の内部ポインタを「一つ前」の要素に移動させ、そのポインタが指す値を返します。配列を順番に操作するときに、現在の位置から前の要素に戻りたい場合に使います。ポインタは配列の要素を指し示す内部的な位置で、current や next 関数と一緒に使用されることが多いです。
パラメータの説明
array(必須): ポインタを操作したい配列を指定します。参照渡しで受け取るため、変更が配列に反映されます。
戻り値
ポインタを一つ戻した位置の要素の値を返します。ただし、ポインタが配列の先頭を越えてしまった場合は false を返します。この場合、配列の先頭より前には戻れないことを意味します。
使用例
基本的な使い方
<?php
$fruits = ['りんご', 'バナナ', 'みかん'];
// 現在のポインタを最後の要素に移動
end($fruits); // ポインタは「みかん」を指す
// prevで一つ前へ戻る
$prevFruit = prev($fruits);
echo $prevFruit; // 出力結果: バナナ
?>
この例では、ポインタを配列の最後に移動してから、prevで一つ前に戻し「バナナ」を取得しています。
複数回 prev を使った例
<?php
$numbers = [10, 20, 30, 40];
end($numbers); // ポインタは40
echo prev($numbers) . "n"; // 30
echo prev($numbers) . "n"; // 20
echo prev($numbers) . "n"; // 10
echo prev($numbers) . "n"; // false (これ以上戻れない)
?>
複数回 prev を呼ぶことで、配列の後ろから前に順に移動できます。配列の先頭より前に戻ろうとすると false を返します。
配列内部のポインタ操作でループ
<?php
$colors = ['赤', '青', '緑'];
reset($colors); // ポインタを先頭に戻す
next($colors); // ポインタは「青」
next($colors); // ポインタは「緑」
// prevでポインタを戻して現在の値を取得
$colorBefore = prev($colors);
echo $colorBefore; // 出力結果: 青
?>
上記のように next と prev を組み合わせて、配列のポインタを前後に移動しながら値を取得できます。
関連する関数
current– 配列の現在のポインタ位置の要素を取得するnext– 配列のポインタを次の要素に進めるreset– 配列のポインタを最初の要素に戻すend– 配列のポインタを最後の要素に移動させる
まとめ
prev 関数は、配列の内部ポインタを一つ前に戻し、その位置の値を取得する際に便利です。配列の要素を前後に移動しながら処理したいときに使い、current、next、reset、end などと組み合わせて使用することで柔軟な配列操作が可能になります。ポインタ操作は配列の現在位置を管理するため、慣れると実務での配列処理がより効率的になります。
