PHP 7.2 이상 버전 each() 함수 오류 해결 및 foreach 대체 방법
페이지 정보

본문
PHP 버전 업그레이드 후 그누보드 등 웹사이트에 발생하는 each() 함수 디프리케이트 오류 원인과, 배열 사용 형태별 foreach 대체 코드 수정 방법을 안내합니다.
PHP 7.2 이상 환경에서 each() 함수 오류 원인
PHP 7.2 이상의 환경으로 서버를 이전하거나 PHP 버전을 업그레이드한 후 웹사이트 화면에 Deprecated: The each() function is deprecated 오류 메시지가 출력되는 원인은 기존 PHP 버전에서 사용하던 each() 함수가 최신 PHP 버전에서 지원되지 않기 때문입니다.
each() 함수는 PHP 7.2.0부터 사용이 권장되지(Deprecated) 않으며, PHP 8.0.0부터는 언어에서 완전히 제거되었습니다. 따라서 해당 함수를 사용하는 기존 코드는 반드시 foreach 문을 사용하는 방식으로 변경해야 합니다.
배열의 키 또는 값만 필요한 경우 foreach 대체 방법
PHP 7.2 이상 환경에서 each() 함수 사용으로 인해 오류가 발생할 때, 배열을 다루는 방식에 따라 foreach 문으로 코드를 수정합니다. 코드를 수정하기 전 반드시 해당 파일의 원본을 백업해야 합니다.
1. 키(key)만 필요한 경우
기존의 reset($array); while (list($key, ) = each($array)) { ... } 코드는 아래와 같이 수정합니다.
foreach(array_keys($array) as $key) { ... }
2. 값(value)만 필요한 경우
기존의 reset($array); while (list(, $value) = each($array)) { ... } 코드는 아래와 같이 수정합니다.
foreach($array as $value) { ... }
수정 후 확인 및 복구
코드 수정 후 확인 및 복구 절차는 Q4를 참조하십시오.
PHP 7.2 이상에서 each() 함수 오류 해결 및 키와 값 동시 사용 foreach 변경 방법
PHP 7.2 이상 버전으로 서버를 이전하거나 PHP 버전을 업그레이드한 후 Deprecated: The each() function is deprecated 오류가 발생할 때, 배열의 키와 값을 동시에 사용하는 기존 each() 반복문은 foreach 문으로 변경해야 합니다.
3. 키와 값을 모두 사용하는 경우
기존 코드:
reset($array);
while (list($key, $value) = each($array)) {
...
}
수정 코드:
foreach($array as $key => $value) {
...
}
주의사항 및 복구
코드 수정 전후 주의사항 및 복구 절차는 Q4를 참조하십시오.
코드 수정 전후 주의사항 및 복구 방법
PHP 7.2 이상 환경에서 each() 함수 오류를 해결하기 위해 코드를 수정할 때 지켜야 할 주의사항과 사이트 복구 방법은 다음과 같습니다.
- 수정 전 백업: 코드를 수정하기 전, 반드시 해당 파일의 원본을 백업해야 합니다.
- 수정 후 확인: 코드를 수정한 후에는 웹사이트에서 해당 기능이 포함된 페이지에 접속하여 오류 메시지가 사라지고 데이터가 정상적으로 출력되는지 확인해야 합니다.
- 사이트 복구: 만약 수정 후 사이트가 정상적으로 작동하지 않는다면, 백업해 둔 원본 파일을 다시 업로드하여 이전 상태로 복구할 수 있습니다.
상황별 판단 가이드
| 내 상황 | 선택 기준 | 다음 행동 |
|---|---|---|
PHP 7.2 이상 환경에서 each() 오류 발생 | each() 함수는 PHP 7.2부터 권장되지 않고 8.0에서 제거됨 | 배열 사용 방식(키/값)에 따라 foreach 문으로 코드 변경 |
| 코드 수정 전 | 수정 중 발생할 수 있는 오류 대비 | 해당 파일의 원본을 반드시 백업 |
| 배열의 키/값 사용 방식 확인 | 필요한 데이터에 따라 문법 선택 | 키만 필요 시 foreach(array_keys($array) as $key), 값만 필요 시 foreach($array as $value), 둘 다 필요 시 foreach($array as $key => $value) 적용 |
| 수정 후 확인 | 기능 정상 작동 여부 | 웹페이지 접속 후 오류 메시지 소실 및 데이터 출력 확인, 문제 시 백업본 복구 |
실전 FAQ
Q. 코드를 수정했는데도 오류가 계속 출력됩니다.
- 수정된 파일이 서버에 올바르게 저장되었는지 확인하십시오. 서버 캐시나 OPcache가 활성화된 경우 이전 코드가 유지될 수 있으므로 캐시 초기화가 필요할 수 있습니다.
Q. 수정 후 사이트가 정상적으로 작동하지 않습니다.
- 즉시 백업해 둔 원본 파일을 다시 업로드하여 사이트를 복구하십시오. 이후
foreach문법이 올바르게 적용되었는지, 괄호나 세미콜론 등 구문 오류가 없는지 다시 검토하십시오.
참고자료
기타 참고자료
- 이전글PHP chmod 함수 사용 시 파일 권한 설정 오류 해결 방법 26.09.12
- 다음글PHP 버전 업그레이드에 따른 mcrypt 암호화 함수 openssl 마이그레이션 방법 26.09.12
댓글목록
등록된 댓글이 없습니다.