ホームページ  >  記事  >  バックエンド開発  >  ループ時の参照渡しに関する質問

ループ時の参照渡しに関する質問

WBOY
WBOYオリジナル
2016-12-01 00:56:201018ブラウズ

ループ時の参照渡しに関する質問

配列を 2 回ループします。最初に値が参照によって渡されると、配列要素の値が変更されます。2 回目でも配列の最後の要素が参照を使用せずに変更されるのはなぜですか。 ? 価値?最初のいくつかの要素は変わっていませんが、最後の要素は変わっていますか?

リーリー

返信内容:

ループ時の参照渡しに関する質問

配列を 2 回ループします。最初に値が参照によって渡されると、配列要素の値が変更されます。2 回目でも配列の最後の要素が参照を使用せずに変更されるのはなぜですか。 ? 価値?最初のいくつかの要素は変わっていませんが、最後の要素は変わっていますか?

リーリー

リーリー

最初のループの後 $v = e;//ここにはまだ参照関係があります&$arr['e'];

2 番目のループの最後から 2 番目のステップは &$v = $arr['d']; then &$arr['e'] = &$v = $arr['d']; になります。

これは、PHP リファレンスの典型的な落とし穴です。

解決策: 最初の foreach の後に

を追加するだけです。 unset($v);

原則は省略されており、自分でGoogle/baiduを検索できます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。