Foreach は & を使用して配列 arr2 を走査し、その後再び配列を走査します。得られた結果は非常にわかりにくいです。& 走査ポインタがどのように移動するかを説明できる専門家はいないでしょうか。 コードは以下のように表示されます:
結果: 0 a1 s2 d0 a a1 s a2 s a
2 回目のトラバース中にポインタが s に移動すると停止するのはなぜですか?
Following the voice in heart.
または、次のようにすることもできます:
出力:
もう一つ
理由: 最初の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中采取了引用传递的方式,第一次循环$v指向$arr2[0]的存储空间,第二次指向> $arr2[1]的存储空间,循环结束则指向$arr2[2]収納スペース内;
foreach
$v
$arr2[0]
$arr2[1]
$arr2[2]
foreach中采取了值传递的方式,第一次循环给$v赋值了a,即给$arr2[2]赋值了a,第二次同上,$arr2[2]的值变为了$arr2[1]的值,则$arr2变成了[a,s,s]
a
$arr2
[a,s,s]
最初に;foreach结束后加一句unset($v) 2回目変数を別の名前に変更しますforeach循环不用$v
foreach结束后加一句unset($v)
unset($v)
foreach循环不用$v
phpで配列の値を変更するためにforeachを使用する問題 php配列クラスオブジェクト値渡し参照渡し差分
または、次のようにすることもできます:
リーリー出力:
リーリーもう一つ
リーリー