php foreach

WBOY
リリース: 2016-07-28 08:30:20
オリジナル
1278 人が閲覧しました

PHP 開発では、配列を繰り返してその要素の値を変更することがよくありますが、他の言語での経験がある場合は、ここで間違いを犯す可能性があります。

私はまだ Java に比較的慣れているので、Java を例に挙げます。Java では、配列を反復してその値を変更します。次のメソッドを使用します。

	<span>	</span>for(Object item : objectArray){
		<span>	</span>item.setAttribute('value');
	<span>	</span>}
ログイン後にコピー

上記のコードは問題ありません。すべて予想どおりです。来る。 PHP にたどり着き、最近小さなプロジェクトに取り組んでいたとき、上記と同様の方法を使用して要素の値を変更しても機能しないことがわかりました。使用されるコードは次のとおりです。
		foreach($arrays as $item){
			$item->name = 'value';	
		}
		echo $arrays[0]->name;
ログイン後にコピー

出力は修正前のものだったことが分かりました!

いくつかのデバッグの後、最終的に、上記のコードが参照ではなく値を渡したかどうかを推測しました。そこで、公式 Web サイトにアクセスしてドキュメントを確認したところ、これが実際に当てはまることがわかったので、コードを次のように変更しました。

		foreach($arrays as &$item){
			$item->name = 'value';	
		}
		echo $arrays[0]->name;
ログイン後にコピー
または次のようにしました。
		foreach($arrays as $key=>$item){
			$arrays[$key]->name = 'value';	
		}
		echo $arrays[0]->name;
ログイン後にコピー
どちらの方法でも結果は問題ありません。したがって、もっと公式文書を読む必要があると感じています。最初は、よく読まずに一通り目を通し、プロジェクトに取り組み始めました。

参考資料:

PHP公式サイトのforeachの説明: http://php.net/manual/en/control-structurals.foreach.php

詳細については、WeChatの公開アカウント: Development and Lifeをフォローしてください

以上、内容も含めてphp foreachを紹介しましたが、PHPチュートリアルに興味のある友人の参考になれば幸いです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート