참조 할당은 데이터 복사본을 받기 위해 새로운 공간을 여는 대신 할당의 왼쪽이 값이 저장되는 메모리 영역을 직접 가리킨다는 것을 의미합니다.
따라서 부모-자식 수준 관계에서 참조 할당은 부모 요소의 ['son'],直接指向了子元素的那片存储区,而并非只是存了值而已。每一个父元素都将['son']指向对应子元素的存储区,这样,其实在内存里已经连接形成了一个树形的结构,而由于所有的父元素里['son']을 자식 요소의 메모리 영역 으로 직접 가리킵니다. 따라서 출력 배열의 부모-자식 관계는 기본적으로 데이터 관계와 동일합니다. 기억 속의 나무 .
위 답변을 본 후에도 PHP에서 참조를 사용하는 것은 C/C++에서 포인터를 사용하는 것과 유사합니다. 이 경우 참조 변수를 사용하는 것과 같습니다. 함수에서 변수 자체도 변경됩니다. 참조는 몇 가지 이점을 가져올 수 있습니다. "포인터"를 직접 작동하기 때문에 매우 효율적이며 불필요한 메모리 낭비를 일으키지 않고 메모리 개방 성능을 소모하지 않습니다.
테스트를 단순화할 수 있는 주로 참조를 사용합니다.
으아악인용 시:
으아악인용 없음:
참조가 있는 경우 하위 요소의 변경 사항은 전체 배열에 표시되지만 참조가 없는 경우 하위 요소의 변경 사항은 전체 배열에 영향을 미치지 않습니다.
아무도 없나요? 설명해주세요
그렇습니다,
하지만foreach
括号中的items
=>a
和循环体中的items
=>b
在内存中存在两个地方. 使用&
之后,b
将会指向a
即真正的items
.에서 변경된 사항 => php7 foreach는 이전 버전과 호환되지 않습니다
php7
之后,foreach
참조 할당은 데이터 복사본을 받기 위해 새로운 공간을 여는 대신 할당의 왼쪽이 값이 저장되는 메모리 영역을 직접 가리킨다는 것을 의미합니다.
따라서 부모-자식 수준 관계에서 참조 할당은 부모 요소의
['son']
,直接指向了子元素的那片存储区,而并非只是存了值而已。每一个父元素都将['son']
指向对应子元素的存储区,这样,其实在内存里已经连接形成了一个树形的结构,而由于所有的父元素里['son']
을 자식 요소의 메모리 영역 으로 직접 가리킵니다. 따라서 출력 배열의 부모-자식 관계는 기본적으로 데이터 관계와 동일합니다. 기억 속의 나무 .참고 @vishun
위 답변을 본 후에도 PHP에서 참조를 사용하는 것은 C/C++에서 포인터를 사용하는 것과 유사합니다. 이 경우 참조 변수를 사용하는 것과 같습니다. 함수에서 변수 자체도 변경됩니다.
참조는 몇 가지 이점을 가져올 수 있습니다. "포인터"를 직접 작동하기 때문에 매우 효율적이며 불필요한 메모리 낭비를 일으키지 않고 메모리 개방 성능을 소모하지 않습니다.