foreach($arr as &$value)
1. 참조 할당 기호는 & 루프가 실행될 때마다 현재 요소를 주소로 바꿉니다. end $ 값은 마지막 요소
2를 가리키는 주소입니다. 다음에 루프를 실행하고 foreach($arr as $value) 메서드를 사용하면 foreach가 각 요소를 다음 $에 할당하는 데 문제가 발생합니다. 값 변수
3 따라서 논리는 각 요소를 원래 배열의 마지막 요소로 수정하며 마지막 루프는 항상 이전 결과
4가 됩니다. , $arr[$key] 형식을 사용하여 원래 배열을 변경하거나 다음 루프 중에 변수 이름을 변경합니다.
$nums=array(1,2,3); foreach($nums as &$v){ var_dump($v); } /* int(1) int(2) int(3) */ var_dump($nums); /* array(3) { [0]=> int(1) [1]=> int(2) [2]=> &int(3) } */ foreach($nums as $v){ var_dump($v); } /* int(1) int(2) int(2) */
[관련 튜토리얼: # 🎜🎜#PHP 비디오 튜토리얼]
위 내용은 [PHP] foreach 루프의 참조 할당 문제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!