DEV WIKI
백엔드 · 오류·증상

TypeError: count(): Argument #1 ($value) must be of type Countable|array

PHP 8 전환 뒤 count()에 배열이나 Countable이 아닌 값이 전달됐는지 확인합니다.

빠른 답변

우선 확인할 원인
오류 위치의 PHP 버전과 실제 값의 타입을 확인하고, 원인 확인 없이 강제 형변환하지 않습니다.
먼저 확인할 항목
오류 원문에 count()와 Countable|array 조건이 있는지 확인합니다.
적용 범위
현재 증상과 본문에 적은 관찰 조건이 함께 확인된 경우
출처 확인일
2026-07-30
최종 검토
2026-07-30
수정일
2026-07-30
관련 기술
오류·수정 제보 (새 창에서 열림)

현재 증상

  • PHP 치명적 오류

먼저 확인할 항목

오류 원문에 count()와 Countable|array 조건이 있는지 확인합니다.

count()에 전달된 값의 실제 타입과 PHP 버전을 기록합니다.

호출 직전 값이 배열·Countable인지 확인합니다.

피해야 할 조치

주의

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

환경별 원인과 조치

적용 범위

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

확인 절차

  1. 오류 원문에 count()와 Countable|array 조건이 있는지 확인합니다.
  2. count()에 전달된 값의 실제 타입과 PHP 버전을 기록합니다.
  3. 호출 직전 값이 배열·Countable인지 확인합니다.

다음 조치

  1. 값의 타입에 맞는 검사와 분기를 추가합니다.
  2. 오류 위치와 무관한 전역 형변환을 적용하지 않습니다.
  3. 같은 입력으로 PHP 8에서 결과가 유지되는지 확인합니다.

주의

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

공식 근거

참고 자료

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

The PHP Group · 공식 자료 · 확인 범위: PHP 8에서는 count()에 배열 또는 Countable이 아닌 값을 전달하면 TypeError가 발생합니다., PHP 공식 문서는 마이그레이션 전 타입 동작을 확인하도록 안내합니다. · 확인일: 2026-07-30