IMG-LOGO
공지사항 :

PHP 비교(Comparison)

lmkfox - 2025-07-26 06:49:37 11 Views 0 Comment

1. PHP 주요 비교 연산자

연산자

의미

예시

설명

==

값이 같음

$a == $b

타입 무시하고 값만 비교

===

값과 타입이 같음

$a === $b

타입까지 동일해야 참

!=

값이 다름

$a != $b

타입 무시하고 값이 다르면 참

<>

!=와 동일

$a <> $b

값이 다르면 참

!==

값 또는 타입이 다름

$a !== $b

하나라도 다르면 참

>

왼쪽이 더 큼

$a > $b

<

오른쪽이 더 큼

$a < $b

>=

왼쪽이 크거나 같음

$a >= $b

<=

오른쪽이 크거나 같음

$a <= $b

<=>

스페이스쉽 연산자

$a <=> $b

왼쪽이 작으면 -1, 같으면 0, 크면 1 반환


2. 느슨한 비교 (

==

)

타입이 다르더라도 값이 같으면 참으로 판단

var_dump(5 == '5');    // true
var_dump(0 == false);  // true
var_dump('' == 0);     // true

PHP는 자동으로 타입을 변환하여 비교합니다. 실수로 참/거짓 판별이 왜곡될 수 있으므로 주의가 필요합니다.


3. 엄격한 비교 (

===

)

타입과 값이 모두 같아야 참

var_dump(5 === '5');   // false (정수 vs 문자열)
var_dump(0 === false); // false (정수 vs 불리언)
var_dump(5 === 5);     // true

엄격한 비교는 예상치 못한 형변환 오류를 방지하므로 권장되는 방식입니다.


4. 다름 비교 (

!=

!==

<>

)

var_dump(5 != '5');   // false
var_dump(5 !== '5');  // true

  • !=과 <>는 같음

  • !==는 타입까지 확인하여 조금 더 안전한 비교


5. 크기 비교 (

>

<

>=

<=

)

var_dump(10 > 5);     // true
var_dump(3 <= 3);     // true

  • 정수, 실수 간 비교 가능

  • 문자열도 비교 가능하지만 사전식 비교가 이루어짐

var_dump("apple" < "banana"); // true


6. 스페이스쉽 연산자 (

<=>

) – PHP 7+

echo 5 <=> 10; // -1
echo 10 <=> 10; // 0
echo 15 <=> 10; // 1

  • 정렬 함수 또는 비교 정렬 알고리즘 구현에 유용

  • 왼쪽이 작으면 -1, 같으면 0, 크면 1 반환


7. 문자열 비교

PHP는 문자열도 비교 가능합니다. 기본적으로 사전순 비교입니다.

var_dump("abc" < "bcd"); // true
var_dump("10" < "2");    // true (문자열로 비교되면 문자 기준)

문자열을 숫자로 변환하지 않고 비교하고 싶다면 **strict 연산자(===)**를 사용하거나 strcmp() 함수를 활용하세요.


8. 형변환이 포함된 비교 – 주의 필요

var_dump('abc' == 0);   // true (문자열이 숫자 변환 실패 → 0 처리)
var_dump('0abc' == 0);  // true

PHP는 비교 시 문자열을 숫자로 변환하려고 시도합니다. 예상치 못한 결과가 발생할 수 있으므로 주의해야 합니다.


9. 

strcmp()

 함수

문자열 비교에 안전하게 사용할 수 있는 함수입니다.

strcmp("abc", "abc");  // 0 (같음)
strcmp("abc", "abd");  // -1
strcmp("abc", "abb");  // 1

대소문자를 구분하는 비교이며, strcasecmp()는 대소문자 구분을 하지 않습니다.


10. 삼항 연산자와 비교

비교 연산은 자주 삼항 연산자와 함께 사용됩니다.

$result = ($age >= 18) ? '성인' : '미성년자';


정리

연산자

설명

자동 형변환

권장 여부

==

느슨한 비교

있음

지양 (예외적으로 사용 가능)

===

엄격한 비교

없음

권장

!=, <>

값 다름 비교

있음

조건에 따라 사용

!==

값 또는 타입 다름 비교

없음

권장

<, >, <=, >=

크기 비교

있음

데이터 타입 인지 후 사용

<=>

비교 정렬 전용

있음

정렬에 적합

strcmp()

문자열 비교 함수

없음

안전하고 명확함


PHP에서 비교 연산은 단순한 값의 비교를 넘어서, 형변환과 타입에 대한 이해가 동반되어야 정확한 코드 작성이 가능합니다. 특히, == 사용 시 자동 형변환으로 인한 예외 상황을 반드시 고려해야 하며, 안전한 비교를 위해 ===를 기본으로 사용하는 것이 좋습니다.


댓글