現在の位置: ホーム> 最新記事一覧> end() + edid():foreachと同様のポインター操作をシミュレートします

end() + edid():foreachと同様のポインター操作をシミュレートします

M66 2025-06-02

PHPでは、 end()各()は、通常配列操作とトラバーサルに関連する2つの非常に一般的な関数です。 foreachは、最も一般的に使用される配列トラバーサル方法ですが、ポインター関数を使用して、 foreachのようなトラバーサル挙動をシミュレートすることもできます。今日、 end()各()を使用して、 foreachのトラバーサルプロセスを模倣する方法について説明します。

end()と各()を理解する

1。end ()関数

end()関数は、配列の内部ポインターを配列の最後の要素に移動し、その要素の値を返すために使用されます。これにより、配列自体を変更せずに配列の最後の要素にアクセスできます。

例:

 $array = [1, 2, 3, 4];
echo end($array);  // 出力 4

2。各()関数

各()関数は、アレイ内の現在のキー値ペアを返し、内部ポインターを1つずつ移動します。キー名とキー値を含む配列(キー)を返します。内側のポインターが配列の最後の要素に移動されると、各()を呼び出すと再びfalseが返されます。

例:

 $array = [1, 2, 3, 4];
print_r(each($array));  // 出力: Array ( [0] => 1 [value] => 1 [key] => 0 )

end()と各()を使用して、foreachトラバーサルをシミュレートする方法

foreachは、PHPで配列を通過する一般的な方法ですが、配列ポインターを介してトラバーサルプロセスを手動で制御する場合は、 end()各()を介してこのトラバーサル挙動をシミュレートできます。

ステップ:

  1. 配列の初期化:最初に、トラバースする配列が必要です。

  2. end()を使用して、配列の最後の要素を見つけます。End ()関数を呼び出すことにより、配列ポインターを見つけます。

  3. 各()を使用して配列をトラバースします各()falseを返すまで各( )の配列を反復し、配列トラバーサルが完了したことを示します。

完全な例:

 <?php
$array = [1, 2, 3, 4, 5];

// ポインターを配列の最後の要素に移動します
end($array);

// シミュレーション foreach トラバーサル
while ($element = each($array)) {
    echo "鍵: " . $element['key'] . ",価値: " . $element['value'] . "\n";
}
?>

コード解析

  1. end($ array) :配列の内側ポインターを配列の最後の要素に移動します。

  2. それぞれ($ array) :配列の現在の要素のキー値ペアを返し、ポインターを次の要素に移動します。

  3. while loop各()がfalseを返すまで、配列を繰り返し続けます。

結論は

end()各()を使用することにより、配列ポインターを介してアレイを手動でトラバースすることができ、 foreachのような機能を達成できます。ほとんどの場合、 foreachはより簡潔で効率的ですが、 end()各()は、配列ポインターの動きをより柔軟に制御したい場合は、興味深い代替手段を提供します。

追加のメモ:

この記事では、使用した各()関数はPHP 7.2.0で放棄されており、PHP 8.0で完全に削除されています。したがって、PHPのより高いバージョンを使用している場合、他の方法を使用して、 foreachループなどの配列を繰り返す必要があります。