ホームページ  >  記事  >  バックエンド開発  >  php foreach

php foreach

WBOY
WBOYオリジナル
2016-07-28 08:30:201258ブラウズ

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チュートリアルに興味のある友人の参考になれば幸いです。

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