비교 연산자

유영·2023년 3월 2일
0

PHP

목록 보기
11/57

비교 연산자(comparison operator)
비교 연산자는 피연산자 사이의 상대적인 크기를 판단하여, 참(true)과 거짓(false)을 반환합니다.
비교 연산자는 모두 두 개의 피연산자를 가지는 이항 연산자이며, 피연산자들의 결합 방향은 왼쪽에서 오른쪽입니다.

비교 연산자설명
==왼쪽의 피연산자와 오른쪽의 피연산자가 같으면 참을 반환함.
===왼쪽의 피연산자와 오른쪽의 피연산자가 같고, 같은 타입이면 참을 반환함. (PHP 4에서 추가됨)
!=왼쪽의 피연산자와 오른쪽의 피연산자가 같지 않으면 참을 반환함.
<>왼쪽의 피연산자와 오른쪽의 피연산자가 같지 않으면 참을 반환함.
!==왼쪽의 피연산자와 오른쪽의 피연산자가 같지 않거나, 타입이 다르면 참을 반환함. (PHP 4에서 추가됨)
<왼쪽의 피연산자가 오른쪽의 피연산자보다 작으면 참을 반환함.
<=왼쪽의 피연산자가 오른쪽의 피연산자보다 작거나 같으면 참을 반환함.
>왼쪽의 피연산자가 오른쪽의 피연산자보다 크면 참을 반환함.
>=왼쪽의 피연산자가 오른쪽의 피연산자보다 크거나 같으면 참을 반환함.

!=와 <> 연산자는 정확히 같은 동작을 하며, 연산자의 우선순위에서만 차이가 발생합니다.


다양한 타입의 비교
PHP에서는 다양한 타입의 값을 서로 비교해야 할 때 다음 규칙에 따라 비교합니다.

피연산자1피연산자2비교 규칙
bool, null모두둘 다 불리언으로 변환한 후 비교함. (false < true)
string,resource,integer, floatstring,resource,integer, float숫자로 시작하는 문자열과 리소스는 숫자로 변환한 후 비교함.
objectobject내장 클래스는 자신의 비교 함수를 정의할 수 있으나, 다른 클래스끼리 비교할 수는 없음.
arrayarray배열끼리의 비교는 같은 키를 가지는 값을 서로 비교함.이때 피연산자1 배열의 키가 피연산자2 배열에 존재하지 않으면 비교할 수 없으며, 배열 요소의 수가 적은 쪽이 작은 거로 판단됨.
array모두배열이 항상 큰 거로 판단됨.
object모두객체가 항상 큰 거로 판단됨.
var_dump(0 < true);           // true
// 불리언 타입과 숫자 0을 비교하므로, 숫자 0은 불리언 false 값으로 변환되어 비교됩니다.var_dump("123abc" == 123);    // true
//문자열과 숫자를 비교하므로, 숫자로 시작되는 문자열 "123abc"는 숫자 123으로 변환되어 비교됩니다.var_dump("123abc" === 123);   // false
//문자열이 숫자로 변환되어 비교된다고 해도 해당 타입까지 변하는 것은 아닙니다.
 
$arr_01 = array("a" => 10);

$arr_02 = array("a" => 5);

$arr_03 = array("a" => 5, "c" => 7);var_dump($arr_01 >= $arr_02); // true
//배열끼리 비교하므로, 배열의 길이가 같은 경우에는 같은 키를 가지는 값을 서로 비교합니다.var_dump($arr_01 >= $arr_03); // false
//배열의 길이가 다른 경우에는 배열 요소의 수가 적은 쪽이 작다고 판단됩니다.var_dump("문자열" < $arr_01); // true
//배열이랑 다른 타입을 비교하면, 언제나 배열이 크다고 판단됩니다.

0개의 댓글