>  기사  >  백엔드 개발  >  PHP는 foreach 루프 후에 배열 참조 문제를 남깁니다.

PHP는 foreach 루프 후에 배열 참조 문제를 남깁니다.

不言
不言원래의
2018-04-13 14:23:532114검색

이 글에서는 foreach 루프 이후에 PHP가 남긴 배열의 참조 문제를 소개합니다. 이제 모든 사람과 공유합니다. 도움이 필요한 친구들이 살펴볼 수 있습니다.



결과:


설명:

1. foreach는 블록 수준 필드가 아니며, 배열 참조는 $k로 끝나며, $a는 메모리를 해제하지 않습니다.

2. 첫 번째 참조 주기가 끝나면 $a는 배열의 마지막 요소 4

3. 루프가 두 번째로 시작되면(이 시점에서 $a는 이미 참조인 마지막 요소를 가리킵니다)

배열의 변경 사항은 다음과 같습니다.

1->

[1

,2,3, 4]

2-> [1,2

,3,4]

3-> ] 세 번째 시간 값은 마지막 요소 3을 가리키지만 값은 다음과 같습니다. 전역 참조는 마지막 루프의 마지막 요소를 가리키므로 value=3이면 마지막 요소의 값도 3

4로 변경됩니다. -> [1,2,3,3]

참고:

1. foreach의 구현 원칙은


2.&의 foreach 루프가 종료됩니다. 마지막 요소를 가리킵니다

피하는 방법:

&foreach 루프를 사용한 후 설정을 해제합니다($ a)


관련 권장 사항:

PHP에서 foreach 참조 주소 전달

foreach 사용 후 예외 처리 & PHP의 참조

foreach와 일반 for 루프 효율성 간의 분석

위 내용은 PHP는 foreach 루프 후에 배열 참조 문제를 남깁니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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