안녕하세요 워누입니다. 

오늘은 PHP에서 사용하는 비교연산자 중 헷갈릴만한 요소를 포스팅해보고자 합니다!

.

우선 소스부터 함께 보시죠!

.

:: 소스코드 - equalTest.php ::

<?php 

$int5 = 5;				// 정수형 숫자 5
$str5 = '5';				// 문자열 5

if ($int5 == $str5){		
	echo "true"."<br>";
} else {
	echo "false"."<br>";
}

if ($int5 === $str5){
	echo "true"."<br>";
} else {
	echo "false"."<br>";
}
?>

위 소스코드는 숫자 5와, 문자열 5를 비교하여 같으면 true, 다르면 false를 출력하는 소스코드입니다. 

아래 결과를 보기 전 결과가 어떨지  미리 생각해보아요~

.

결과는 어떤지 이제 한번 보도록 하죠!

.

:: 결과화면 ::

equalTest.php 실행화면

 

비교연산자 중 '==' 으로 비교한건 true가 나오고, '===' 으로 비교한건 false가 나왔네요! 

이유는 '=='으로 비교할 땐 값의 일치여부만 판단하지만,

'==='으로 비교하게 되면 자료형의 일치여부까지도 판단하기 때문인데요!

즉, 변수 int5와 str5의 값은 동일하게 '5'이므로 '=='으로 비교하였을 땐 같다고 판단하여 true를,

'==='으로 비교하였을 땐 자료형이 각각 정수, 문자열로 서로 다르기에 false를 출력하였습니다!

.

그렇다면 부정을 의미하는 !=, !==은 어떤지 같이 살펴 볼까요?

 

:: 소스코드 - equalTest2.php ::

<?php 

$int5 = 5;				// 정수형 숫자 5
$str5 = '5';				// 문자열 5

if ($int5 != $str5){		
	echo "true"."<br>";
} else {
	echo "false"."<br>";
}

if ($int5 !== $str5){
	echo "true"."<br>";
} else {
	echo "false"."<br>";
}

?>

 

이번엔 반대로 다르면 true, 같으면 false를 출력하도록 바꿨습니다.

결과를 바로 보시죠!

 

:: 결과화면 ::

equalTest2.php

 

예상대로 '!='로 비교하였을 땐 두 변수 모두 같은 값을 가지고 있어 false를 출력하였고, 

'!=='으로 비교하였을 땐 두 변수의 자료형이 다르니 true를 출력하였네요!

 

!= 연산자는 값의 다름만을 판별하지만,

!== 연산자는 값은 물론 자료형의 다름까지 판별한다는 점을 알게 되었네요 ㅎㅎ

.

위에서 언급한 '==', '===', '!=', '!==' 비교연산자는 javascript에서도 동일하게 적용된다고 하네요!

php가 웹에 특화된 언어인 만큼 javascript를 같이 사용하시는 분도 많을테니 참고하시면 도움이 될 듯합니다!

 

이번 포스팅도 유용한 글이 되었기를 바라며, 여기서 마무리 하겠습니다!

그럼 2만~

 

+ Recent posts