PHP foreach

WBOY
WBOY원래의
2016-07-28 08:30:201282검색

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;

수정되지 않은 버전으로 출력된 것을 확인했습니다!

약간의 디버깅 끝에 마침내 위 코드가 참조 대신 값을 전달했는지 추측했습니다. 그래서 공식 웹사이트에 가서 문서를 확인했고 이것이 실제로 사실이라는 것을 알았습니다. 그래서 코드를 다음과 같이 수정했습니다:

		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-structures.foreach.php

추가 정보 , WeChat 공개 계정을 팔로우하세요: 개발 및 생활

위 내용은 PHP foreach의 측면을 포함하여 소개되었으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.