로그인 | 관리자

개발 기록과 실무 자료를 빠르게 찾아보세요.

WEB DEVELOPMENT ARCHIVE

PHP

PHP, MySQL, 서버 운영과 실무 개발 기록입니다.

목록

레거시 개발자를 위한 PHP 5.x·7.x와 PHP 8.x의 문자열·숫자 비교 방식 차이

웹마당넷 2026-11-14 04:44:16 6

PHP 5.x·7.x와 PHP 8.x의 문자열과 숫자 비교 방식 차이


PHP 5.x 및 PHP 7.x에서 개발한 웹사이트를 PHP 8.x로 이전할 때 주의해야 할 사항 중 하나는 문자열과 숫자의 비교 방식입니다.


PHP 8.0부터 숫자와 숫자가 아닌 문자열을 비교하는 규칙이 변경되었습니다.


1. PHP 5.x·7.x에서 실행한 결과


<?php

var_dump(0 == "abc"); // bool(true)

var_dump(0 == ""); // bool(true)

?>


PHP 5.x와 7.x에서는 숫자와 숫자가 아닌 문자열을 == 연산자로 비교할 때 문자열이 숫자로 변환됩니다.

따라서 위 코드에서는 문자열이 숫자 0으로 변환되어 true가 반환됩니다.


2. PHP 8.x에서 실행한 결과


동일한 코드를 PHP 8.x에서 실행하면 결과가 달라집니다.


<?php

var_dump(0 == "abc"); // bool(false)

var_dump(0 == ""); // bool(false)

?>


PHP 8.0부터 숫자와 숫자가 아닌 문자열을 비교할 때는 숫자를 문자열로 변환하여 비교합니다.

따라서 위 코드에서는 false가 반환됩니다.


3. PHP 버전별 비교 결과


PHP 5.x, PHP7.x


0 == "abc" // true

0 == "" // true

0 == "0" // true

10 == "10" // true


PHP 8.x


0 == "abc" // false

0 == "" // false

0 == "0" // true

10 == "10" // true


마무리


PHP 5.x 및 PHP 7.x에서 PHP 8.x로 이전할 때는 == 연산자를 사용한 숫자와 문자열 비교 코드를 확인해야 합니다.

자료형까지 비교하려면 === 연산자를 사용할 수 있지만 기존 코드를 무조건 변경하면 동작이 달라질 수 있으므로 주의해야 합니다.

참고: [PHP 공식 문서 - PHP 8.0 이전 버전과 호환되지 않는 변경 사항]

댓글 0

등록된 댓글이 없습니다.
댓글 작성 타인을 비방하거나 광고성 내용을 등록하지 마세요.
WEB DEVELOPMENT ARCHIVE

PHP

PHP, MySQL, 서버 운영과 실무 개발 기록입니다.

글쓰기
전체 83건
번호
제목
작성자
작성일
조회