検索

ホームページ  >  に質問  >  本文

php foreachリファレンスに関する質問

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

リーリー

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

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

typechotypecho2702日前844

全員に返信(3)返信します

  • 迷茫

    迷茫2017-07-04 13:47:55

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

    リーリー

    出力:

    リーリー

    返事
    0
  • phpcn_u1582

    phpcn_u15822017-07-04 13:47:55

    もう一つ

    リーリー

    返事
    0
  • 我想大声告诉你

    我想大声告诉你2017-07-04 13:47:55

    理由:

    • 最初の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
  • キャンセル返事