Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP strcmp() 함수 완벽 정리 – 문자열 비교 사용법과 예제

PHP의 strcmp() 함수는 두 개의 문자열을 서로 비교할 때 사용하는 내장 함수입니다. 문자열이 사전순(바이너리 기준)으로 어떤 관계인지 판별하여 그 결과를 정수 값으로 반환합니다.

참고: strcmp() 함수는 대소문자를 구분합니다. 즉, "Windows"와 "windows"는 서로 다른 문자열로 인식됩니다. 대소문자를 구분하지 않고 비교하려면 strcasecmp() 함수를 사용하는 것이 좋습니다.

문법 (Syntax)

strcmp(str1, str2)

매개변수 (Parameters)

  • str1 − 비교할 첫 번째 문자열

  • str2 − 비교할 두 번째 문자열

반환값 (Return Value)

strcmp() 함수는 비교 결과에 따라 다음과 같은 정수 값을 반환합니다.

  • 0 − 두 문자열이 완전히 같은 경우

  • 0보다 작은 값 (<0) − str1이 str2보다 작은 경우

  • 0보다 큰 값 (>0) − str1이 str2보다 큰 경우

반환되는 정숫값은 두 문자열이 처음으로 다른 위치의 문자 간 ASCII 코드 차이를 나타냅니다.

예제 1: 대소문자가 다른 문자열 비교

다음은 대소문자가 다른 두 문자열을 비교하는 예제입니다.

<?php
   echo strcmp("windows", "Windows");
?>

출력 결과

32

"windows"와 "Windows"는 대소문자가 다르기 때문에 같지 않으며, 첫 번째 문자 'w'(ASCII 119)와 'W'(ASCII 87)의 코드 차이인 32가 반환됩니다.

예제 2: 길이가 다른 문자열 비교

이번에는 부분적으로 일치하지만 길이가 다른 문자열을 비교해 보겠습니다.

<?php
   echo strcmp("Windows OS", "Windows Operating System");
?>

출력 결과

-7424

"Windows OS"가 "Windows Operating System"보다 짧고 사전순으로 앞서기 때문에 음수인 -7424가 반환됩니다. 이처럼 strcmp()는 단순히 참/거짓이 아닌, 두 문자열의 상대적인 순서까지 알려주므로 정렬(sorting) 로직을 구현할 때도 유용하게 활용됩니다.

정리

strcmp() 함수는 대소문자를 구분하며, 두 문자열이 같으면 0, 첫 번째 문자열이 작으면 음수, 크면 양수를 반환합니다. 문자열 동등 여부만 확인할 목적이라면 === 연산자를, 대소문자 무시 비교가 필요하면 strcasecmp()를 함께 고려하면 됩니다.