(または他のハックを介して) 可能かもしれませんが、この方法で記述されたコードは (数年後の自分でも) 理解するのが困難です。prev
プログラマーにとって、foreach
構造は (一見すると) 前後にジャンプすることなく、配列のすべての要素を単純に反復するように見えます。
また、ループprev
内はある PHP バージョンでは機能するが、別のバージョンでは失敗する可能性があることに注意してください。
PHPドキュメントは言う:foreach
foreach は内部配列ポインターに依存しているため、ループ内で変更すると、予期しない動作が発生する可能性があります。
while
あなたの場合はループを使用することをお勧めします(インデックスまたは--each
関数のいずれかを使用)。この構造は、反復ロジックが配列要素に対する単なる順次反復よりも複雑であることをプログラマーに即座に知らせます。prev
next
while
$array = array('this', 'is', 'my', 'array');
$bool = false;
while (list($key, $value) = each($array))
{
echo $value.' ';
if($value == 'my' && !$bool)
{
// Rerun the 'my' index again
$bool = true;
prev($array);
}
}