この記事では主にPHPの配列ポインタの詳細な説明を共有します。まず、PHPの配列ポインタの操作方法を共有します。
1. PHP 配列ポインター操作
PHP の組み込み関数を使用します: key、current、next()、prev() を使用して前のポインターに移動し、
reset() をリセットして最初のポインターに移動します要素、end() は最後の要素に移動します
ポインターの位置が不正になると、相対移動 (次へ、前へ) はできなくなりますが、絶対移動 (リセット、終了) は可能になり、リセットがより頻繁に使用されることに注意してください。
each() は、key、current、next の機能を組み合わせたものです。現在の要素情報を取得したら、ポインタを次の要素に移動します。
要素情報配列 = each($arr) ポインタを移動します
要素情報配列にはインデックスとアソシエーションの 2 つの表現スキームがあることに注意してください。
その中に: インデックス: 0、1 はそれぞれキーと値を表し、関連付け: キー、値はそれぞれキーと値を表します
2. よく使用されるポインター走査メソッド
each+while+list は配列を走査します
list -each配列を走査
アップグレードされた操作:
キー変数と値変数の操作が取得され、簡素化されます。
リスト構造を使用します
インデックス配列を使用して複数の変数を同時に初期化します!
eachの戻り値には、キーとしてインデックス配列0、値として1が含まれています。
listを使用した単純化された結果:
実際: ループ構造がある限り、ポインター操作は完了できます。配列を走査する
3. 配列ポインターの問題についての議論
コピー中のポインターの位置の問題を考慮してください:
元の配列ポインタがすでに不正な場合はどうなりますか?問題は、コピー後、誰が current を最初に実行し、どの配列ポインタが初期化されるかです。
この現象の理由は次のとおりです:
1. 配列ポインターの位置が不正な場合、コピー時に新しい配列ポインターが初期化されます。
2. 値を渡すとき、PHP は COW (コピーオンライト) 最適化対策を採用しています。
コピーオンライトの 2 つの重要なポイント:
値が転送されるとき、新しい変数のために値空間がすぐに開かれるわけではありませんが、両方の変数が変更される前に、値空間が引き続き使用されます
変数が変更されると、値空間がコピーされ、変更された変数が新しい空間を参照できるようになります。
current は書き込み操作も発行し、スペースがコピーされることに注意してください。最初に現在の人が新しい人となり、ポインタは初期化されます。
foreach
1 では、元の配列の代わりにコピーが走査されます。
2. 元の配列で書き込み操作が発生した場合にのみ、実際のコピーが作成されます。このとき、元の配列ポインタは現在位置に留まります。不正な場合は初期化されます。
関連する推奨事項:
以上がPHPの配列ポインタの詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。