이 글은 주로 PHP 배열 포인터에 대한 자세한 설명을 공유합니다. 먼저, PHP 배열 포인터의 작동 방법을 공유하겠습니다.
1. PHP 배열 포인터 작업
PHP에 내장된 함수인 key, current, next(), prev()를 사용하여 이전 항목으로 이동하고
reset()을 사용하여 재설정하고 첫 번째 항목으로 이동합니다. 요소, end()는 마지막 요소로 이동합니다
포인터 위치가 잘못되면 상대 이동(다음, 이전)을 할 수 없고 절대 이동(리셋, 종료)을 할 수 있으며 재설정이 더 자주 사용됩니다!
each()는 키, 현재, 다음 기능을 결합합니다! 현재 요소 정보를 얻은 후 다음 요소로 포인터를 이동하세요!
요소 정보 배열 = 각각($arr).포인터 이동
요소 정보 배열에는 인덱스와 연관이라는 두 가지 표현 방식이 있습니다.
그 중: 인덱스: 0, 1은 각각 키와 값을 나타내고, 연관: 키, 값은 각각 키와 값을 나타냅니다.
2. 일반적으로 사용되는 포인터 탐색 방법
each+while+list는 배열을 탐색합니다
list -each배열 탐색
업그레이드된 작업:
키 변수와 값 변수의 작업을 간단하게 얻을 수 있습니다!
목록 구조를 사용하세요.
여러 변수를 동시에 초기화하려면 인덱스 배열을 사용하세요!
each의 반환 값에는 인덱스 배열 0이 키로, 1이 값으로 포함됩니다!
list을 사용한 단순화된 결과:
사실: 루프 구조가 있는 한 포인터 작업으로 배열을 완료할 수 있습니다. 순회
3. 배열 포인터 문제에 대한 토론
복사 중 포인터 위치 문제를 고려하세요.
원래 배열 포인터가 이미 불법이면 어떻게 되나요?
다시 살펴보세요:
문제는 복사 후에 누가 current를 먼저 실행하고 어떤 배열 포인터가 초기화되는지입니다!
이 현상의 원인은 다음과 같습니다.
1. 배열 포인터 위치가 잘못된 경우 복사 시 새 배열 포인터가 초기화됩니다!
2. 값을 전달할 때 PHP는 COW(쓰기 시 복사) 최적화 조치를 채택합니다!
기록 중 복사의 두 가지 핵심 사항:
값이 전송되면 새 변수에 대해 값 공간이 즉시 열리지 않지만 두 변수가 모두 변경되기 전에는 값 공간이 계속 사용됩니다.
변수가 변경되면 값 공간이 복사되어 변경된 변수가 새 공간을 참조할 수 있습니다!
현재는 쓰기 작업도 실행하여 공간이 복사된다는 점에 유의하세요! 현재의 사람이 먼저 새로운 사람이고 포인터가 초기화됩니다!
foreach
1일 때 원본 배열 대신 복사본이 순회됩니다!
2. 원본 배열에서 쓰기 작업이 발생한 경우에만 실제 복사본이 만들어집니다. 이때 원래 배열 포인터는 현재 위치에 유지됩니다. 불법일 경우 초기화됩니다!
관련 추천:
위 내용은 PHP의 배열 포인터에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!