비교 연산자


비교란 2개의 값의 크기를 판별하여 상태값을 true/false 논리값으로 판단할 수 있는 연산자입니다.


동일 비교 연산자


동일 비교란 서로의 값이 같은지를 판별하는 것입니다.
우리가 알고 있는 같다는 의미의 = 기호는 프로그램 언어에서 대입 연산자로 이미 사용을 하고 있습니다.
따라서 프로그램 언어에서는 서로 같은지 판단하는 기호로 =를 두 번 표기한 ==로 사용합니다.

$x == $y

== 기호를 중심으로 좌우의 값이 같은 경우 참(true)을 반환하고, 같지 않은 겨우 거짓(false)을 나타냅니다.

예제 파일 op-03.php

<?php
	$x = 123;
	$y = 123.0;

	if ($x == $y) {
		echo "x = y 는 같은 값입니다.";
	} else {
		echo "x = y 는 서로 틀립니다.";
	}

?>

결과

x = y 는 같은 값입니다.

== 기호는 프로그램의 조건문에서 가장 많이 사용하는 기호입니다.

Note: 다음과 같이 실수로 if($a=3) 이라 할때 $a3을 비교하지 않고, $a3을 대입하게 됩니다.
그리고 대입한 값이 0보다 큰 값이기 대문에 참 조건이 됩니다.


타입값 비교


고전적인 프로그램 언어에서는 서로의 값을 비교하는 연산자 ==만 사용이 가능했습니다.
하지만 PHP는 확장된 비교 연산자 ===를 지원합니다.

= 기호를 세 번 연결한 === 기호는 변수의 값과 더불어 형 타입까지 비교하는 연산자입니다.

예제 파일 op-04.php

<?php
	$x = 123;
	$y = 123.0;

	if ($x === $y) {
		echo "x === y 는 같은 값입니다.";
	} else {
		echo "x === y 는 서로 틀립니다.";
	}

?>

결과

x === y는 서로 틀립니다.

위의 예제 $x123 값을 가지고 있는 정수형 타입입니다.
그리고 $y123.0으로 실수의 값을 가지고 있습니다.
수학적으로 값은 같을 수 있겠지만 타입으로는 정수와 실수로 다릅니다.

== 기호로는 정수든 실수든 값의 크기가 같기 때문에 참(false)을 출력하지만, === 기호로는 변수 타입까지 비교하기 때문에 거짓(false)을 반환합니다.


같지 않은 !


프로그램 언어에서는 느낌표(!)는 부정을 나타냅니다. 논리 기호 not 을 뜻합니다.

앞에서 배운 == 기호는 두 개의 값이 동일한지를 비교하는 연산자이지만 !를 앞에 붙이면 같지 않은 조건을 판별할 수 있습니다.

예제 파일 op-05.php

<?php
	$x = "hello";
	$y = "abcd";

	if ($x !== $y) {
		echo "x($x) !== y($y) 는 같은 값이 아닙니다.";
	} else {
		echo "x($x) !== y($y) 는 서로 같습니다.";
	}

?>

결과

x(hello) !== y(abcd)는 같은 값이 아닙니다.

!== 연산자 이외에 <> 기호를 사용할 수도 있습니다.

예제 파일 op-06.php

<?php
	$x = 123;
	$y = 123;

	if ($x !== $y) {
		echo "x !== y 는 서로 틀립니다.";		
	} else {
		echo "x !== y 는 같은 값입니다.";
	}

	echo "<br>";
	
	if ($x <> $y) {
		echo "x <> y 는 서로 틀립니다.";		
	} else {
		echo "x <> y 는 같은 값입니다.";
	}

?>

결과

x !== y 는 같은 값입니다.
x <> y 는 같은 값입니다.

부정 표현은 값을 일치하지 않은 조건으로도 많이 사용하는 비교 연산자입니다.


> 크다


크기 비교 연산자는 우측의 값을 기준으로 판단합니다.

> 기호는 우측 값보다 좌측 값이 클 때를 비교하는 연산자입니다.

예제 파일 op-07.php

<?php
	$x = 123;

	if ($x > 120) {
		echo "$x 는 120보다 큰 값입니다.";		
	} else {
		echo "$x 크지 않습니다.";
	}

	echo "<br>";

	if ($x > 123) {
		echo "$x 는 123보다 큰 값입니다.";		
	} else {
		echo "$x 크지 않습니다.";
	}

?>

결과

123는 120보다 큰 값입니다.
123 크지 않습니다.

크다는 표현은 같은 값을 포함하지는 않습니다.
또한 항상 오른쪽이 기준값이 됩니다.


< 작다


크기 비교 연산자는 우측의 값을 기준으로 판단합니다.
< 기호는 우측의 값보다 좌측의 값이 작을 때를 비교하는 연산자입니다.

예제 파일 op-08.php

<?php
	$x = 123;

	if ($x < 150) {
		echo "$x 는 150보다 작은 값입니다.";		
	} else {
		echo "$x 작지 않습니다.";
	}

	echo "<br>";
	
	if ($x < 123) {
		echo "$x 는 123보다 작은 값입니다.";		
	} else {
		echo "$x 작지 않습니다.";
	}


?>

결과

123는 150보다 작은 값입니다.
123 작지 않습니다.

작다는 표현은 같은 값을 포함하지는 않습니다.


>= 크거나 같다


크기 비교 연산자는 우측의 값을 기준으로 판단합니다.
> 기호는 우측의 값보다 좌측의 값이 클 때를 비교하는 연산자입니다.

크거나 같다는 표현은 같은 값을 포함하기 때문에 == 같은 값과 > 큰 값을 확인하는 두 가지 조건을 모두 포함합니다.

예제 파일 op-09.php

<?php
	$x = 123;

	if ($x >= 120) {
		echo "$x는 120보다 큰 값입니다.";		
	} else {
		echo "$x 크지 않습니다.";
	}

	echo "<br>";

	if ($x >= 123) {
		echo "$x는 123보다 큰 값입니다.";		
	} else {
		echo "$x 크지 않습니다.";
	}

?>

결과

123는 120보다 큰 값입니다.
123는 123보다 큰 값입니다.


<= 작거나 같다


크기 비교 연산자는 우측의 값을 기준으로 판단합니다.
< 기호는 우측의 값보다 좌측의 값이 작을 때를 비교하는 연산자입니다.

작거나 같다는 표현은 같은 값을 포함하기 때문에 == 같은 값과 < 큰 값을 확인하는 두 가지 조건을 모두 포함합니다.

예제 파일 op-10.php

<?php
	$x = 123;

	if ($x <= 150) {
		echo "$x는 150보다 작은 값입니다.";		
	} else {
		echo "$x 작지 않습니다.";
	}

	echo "<br>";
	
	if ($x <= 123) {
		echo "$x는 123보다 작은 값입니다.";		
	} else {
		echo "$x 작지 않습니다.";
	}

?>

결과

123는 150보다 작은 값입니다.
123는 123보다 작은 값입니다.