php foreachリファレンスに関する質問
typecho
typecho 2017-07-04 13:45:55
0
3
877

Foreach は & を使用して配列 arr2 を走査し、その後再び配列を走査します。得られた結果は非常にわかりにくいです。& 走査ポインタがどのように移動するかを説明できる専門家はいないでしょうか。
コードは以下のように表示されます:

リーリー

結果:
0 a
1 s
2 d
0 a a
1 s a
2 s a

2 回目のトラバース中にポインタが s に移動すると停止するのはなぜですか?

typecho
typecho

Following the voice in heart.

全員に返信(3)
迷茫

または、次のようにすることもできます:

リーリー

出力:

リーリー
いいねを押す +0
phpcn_u1582

もう一つ

リーリー
いいねを押す +0
我想大声告诉你

理由:

  • 最初のforeach中采取了引用传递的方式,第一次循环$v指向$arr2[0]的存储空间,第二次指向> $arr2[1]的存储空间,循环结束则指向$arr2[2]収納スペース内;

  • 2番目の
  • では、配列の最後の要素が最後から2番目の要素の値になります

    foreach中采取了值传递的方式,第一次循环给$v赋值了a,即给$arr2[2]赋值了a,第二次同上,$arr2[2]的值变为了$arr2[1]的值,则$arr2变成了[a,s,s]

解決策:

    最初に
  • ;

    foreach结束后加一句unset($v)

  • 2回目
  • 変数を別の名前に変更します

    foreach循环不用$v

参考:

    phpで配列の値を変更するためにforeachを使用する問題
  • php配列クラスオブジェクト値渡し参照渡し差分
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート