DEV WIKI
백엔드 · 오류·증상

TypeError: Cannot access offset of type string on string

PHP 8 전환 뒤 문자열 오프셋을 배열 키처럼 사용했는지 확인합니다.

빠른 답변

우선 확인할 원인
오류 위치의 변수 타입과 대괄호 안 키 표현식을 확인하며 배열로 단정해 강제 변환하지 않습니다.
먼저 확인할 항목
오류 원문과 파일·줄 번호를 확인합니다.
적용 범위
현재 증상과 본문에 적은 관찰 조건이 함께 확인된 경우
출처 확인일
2026-07-30
최종 검토
2026-07-30
수정일
2026-07-30
관련 기술
오류·수정 제보 (새 창에서 열림)

현재 증상

  • PHP 치명적 오류

먼저 확인할 항목

오류 원문과 파일·줄 번호를 확인합니다.

오류 위치의 값이 문자열인지 배열인지 기록합니다.

PHP 8 전환 전후의 입력 형식과 변수 생성 경로를 비교합니다.

피해야 할 조치

주의

  • 오류 원문·시각·환경만 기록하고 비밀번호, 토큰, 세션 쿠키, 결제 정보, 개인정보는 기록하지 않습니다.
  • 운영 설정은 현재 값을 보관한 뒤 한 번에 한 항목만 수정합니다.

환경별 원인과 조치

적용 범위

이 문서는 관찰값이 함께 확인될 때 적용합니다. 오류 문구 하나만으로 원인을 확정하지 않습니다.

확인 절차

  1. 오류 원문과 파일·줄 번호를 확인합니다.
  2. 오류 위치의 값이 문자열인지 배열인지 기록합니다.
  3. PHP 8 전환 전후의 입력 형식과 변수 생성 경로를 비교합니다.

다음 조치

  1. 변수 타입에 맞는 오프셋 접근인지 확인합니다.
  2. 오류와 무관한 전역 데이터 변환을 먼저 적용하지 않습니다.
  3. 같은 입력으로 PHP 8에서 오류와 출력 결과를 재확인합니다.

주의

  • 운영 데이터와 인증 정보를 문서·로그·문의 자료에 포함하지 않습니다.
  • 조건이 일치하지 않으면 이 문서의 조치를 적용하지 말고 원문과 환경을 보존합니다.

공식 근거

참고 자료

PHP 8.0 backward incompatible changes (새 창에서 열림)

The PHP Group · 공식 자료 · 확인 범위: PHP 8 마이그레이션 문서는 문자열·배열 오프셋 접근의 타입 동작 변화를 설명합니다., 오류 위치의 변수 타입과 기존 입력 형식을 함께 확인해야 합니다. · 확인일: 2026-07-30