foreach 루프는 원본 배열의 복사본을 사용합니다. 참조 할당 후에 원본 배열이 변경될 수 있는 이유는 무엇입니까?
이 단락에서는 foreach 작업이 원본 배열의 복사본이고 원본 배열이 동기화 중에 중간에 손실되었음을 증명할 수 있습니다. 원본 배열의 내부 포인터는 한 번만 이동되었으며 후속 작업은 모두 복사본에서 수행됩니다
참조 할당 사용 시 배열의 참조 상황은 다음과 같습니다
환자분의 답변에 진심으로 감사드립니다
& 기호를 추가한 후에는 원본 배열의 복사본을 사용하지 않는 것입니다. 앰퍼샌드가 없으면 실제로 원본 배열의 복사본입니다. 앰퍼샌드를 추가하는 것은 포인터와 동일하며 이름만 할당하면 됩니다. 따라서 새 어레이를 변경하면 원래 어레이도 변경됩니다. PHP 5부터는 $value 앞에 &를 추가하여 배열의 셀을 쉽게 수정할 수 있습니다. 이 방법은 값을 복사하는 대신 참조로 할당합니다.
주소 전달 기호 &를 추가하면 $aNewValue는 배열의 각 요소에 대한 포인터가 됩니다. 이는 원래 배열을 수정하는 것과 같습니다
&
php는 쓰기 시 복사됩니다. 복사할 때 값을 가리키기 위해 새 포인터를 사용합니다.
두 변수가 동일한 주소를 가리키는 참조입니다. 복사본을 작동하면 원본 배열도 수정됩니다.
& 기호를 추가한 후에는 원본 배열의 복사본을 사용하지 않는 것입니다. 앰퍼샌드가 없으면 실제로 원본 배열의 복사본입니다. 앰퍼샌드를 추가하는 것은 포인터와 동일하며 이름만 할당하면 됩니다. 따라서 새 어레이를 변경하면 원래 어레이도 변경됩니다.
으아악PHP 5부터는 $value 앞에 &를 추가하여 배열의 셀을 쉽게 수정할 수 있습니다. 이 방법은 값을 복사하는 대신 참조로 할당합니다.
주소 전달 기호
&
를 추가하면 $aNewValue는 배열의 각 요소에 대한 포인터가 됩니다. 이는 원래 배열을 수정하는 것과 같습니다php는 쓰기 시 복사됩니다. 복사할 때 값을 가리키기 위해 새 포인터를 사용합니다.
두 변수가 동일한 주소를 가리키는 참조입니다. 복사본을 작동하면 원본 배열도 수정됩니다.