Fatal error: Uncaught ArithmeticError: Bit shift by negative number in /tmp/test.php:2
PHP 7에서 음수 값으로 비트 시프트를 수행할 때 표시되는 ArithmeticError입니다.
빠른 답변
- 확인 범위
- PHP 7에서는 음수 값으로 비트 시프트를 수행하면 ArithmeticError가 발생합니다.
- 먼저 확인할 항목
- 비트 시프트 연산자의 오른쪽 피연산자가 음수인지 확인합니다.
- 적용 범위
- 화면 또는 로그에 같은 오류 메시지·상태명이 표시된 경우
- 출처
- PHP
- 출처 확인일
- 2026-07-24
- 최종 검토
- 2026-07-24
- 정정 이력
- 2026-07-29 이후 기록 없음
- 관련 기술
이 문서의 범위
이 문서는 화면·로그의 오류 메시지 또는 상태명을 공식 자료와 대조하는 데 사용합니다. 이 문구만으로 실제 원인이나 변경 방법을 확정하지 않으며, 아래 관련 기술 문서에서 적용 환경을 추가로 확인해야 합니다.
현재 증상
- 애플리케이션 오류 메시지
먼저 확인할 항목
비트 시프트 연산자의 오른쪽 피연산자가 음수인지 확인합니다.
현재 오류 문자열에 `ArithmeticError: Bit shift by negative number`가 포함되는지 원문의 PHP 7 출력과 대조합니다.
오류 메시지·상태명 확인 범위
증상
PHP 7에서 음수 값으로 비트 시프트를 수행하면 다음 오류가 표시됩니다.
Fatal error: Uncaught ArithmeticError: Bit shift by negative number in /tmp/test.php:2
확인
- 문제가 발생한 코드에서 비트 시프트 연산자의 오른쪽 피연산자가 음수인지 확인합니다.
- 원문의 예시인
var_dump(1 >> -1);를 PHP 7에서 실행했을 때 위 오류 메시지가 출력되는지 비교합니다. - 현재 화면 또는 로그의 오류 문자열에
ArithmeticError: Bit shift by negative number가 포함되는지 원문의 출력과 대조합니다.
원문 예시에서 PHP 5의 출력은 int(0)이며, PHP 7의 출력은 ArithmeticError를 포함한 치명적 오류입니다.
참고 자료
PHP: Backward incompatible changes - Manual (새 창에서 열림)
PHP · 공식 자료 · 확인 범위: PHP 7에서 음수 값으로 비트 시프트하면 ArithmeticError가 발생합니다., 원문의 `var_dump(1 >> -1);` 예시는 PHP 7에서 해당 치명적 오류를 출력합니다., 원문의 같은 예시는 PHP 5에서 `int(0)`을 출력합니다. · 확인일: 2026-07-24