프로그래밍의 비교 기능은 이것만으로는 효용이 크지 않다. 후속 수업인 조건문에서 그 효용이 드러나기 때문에 조금 지루하더라도 조건문까지만 인내하자.
연산자
연산자란 값에 대해서 어떤 작업을 컴퓨터에게 지시하기 위한 기호인데 우리는 이미 연산자를 사용했다. 아래 예제 중에서 '='는 우항의 값인 1을 좌항의 변수 a에 대입하는 '대입 연산자'다. PHP의 주요 연산자는 PHP의 메뉴얼을 참고하자. 연산자가 무엇인가에 대한 이해를 돕기 위한 것일 뿐 외울 필요는 없다. 차차로 알게 된다.
$a=1;
비교 연산자
프로그래밍에서 비교란 주어진 값들이 같은지, 다른지, 큰지, 작은지를 구분하는 것을 의미한다. 이 때 비교 연산자를 사용하는데 비교 연산자의 결과는 true나 false 중의 하나다. true는 비교 결과가 참이라는 의미이고, false는 거짓이라는 뜻이다. 아래는 주요한 비교 연산자들의 종류와 그에 따른 예제들이다.
==
좌항과 우항을 비교해서 서로 값이 같다면 true 다르다면 false가 된다. '='가 두개인 것을 주의하자. '='가 하나인 것은 대입 연산자로 좌항의 값을 우항의 변수에 대입할 때 사용하는 것으로 의미가 완전히 다르다.
/compare/compare1.php
https://github.com/egoing/phpeverybody/blob/master/compare/compare1.php
<html> <body> <?php echo "1==2 : "; var_dump(1==2); #false echo '<br />'; echo "1==1 : "; var_dump(1==1); #true echo '<br />'; echo '"one"=="two" : '; var_dump("one"=="two"); #false echo '<br />'; echo '"one"=="one" : '; var_dump("one"=="one"); #true echo '<br />'; ?> </body> </html>
결과는 아래와 같다.
1==2 : bool(false) 1==1 : bool(true) "one"=="two" : bool(false) "one"=="one" : bool(true)
!=
'!'는 부정을 의미한다. '같다'의 부정은 '같지 않다'이다. 이것을 기호로는 '!='로 표시한다. 아래의 결과는 !=의 결과인데 ==와 정반대의 결과를 보여준다.
/compare/compare2.php
https://github.com/egoing/phpeverybody/blob/master/compare/compare2.php
<html> <body> <?php echo "1!=2 : "; var_dump(1!=2); #true echo '<br />'; echo "1!=1 : "; var_dump(1!==1); #false echo '<br />'; echo '"one"!="two" : '; var_dump("one"!="two"); #true echo '<br />'; echo '"one"!="one" : '; var_dump("one"!="one"); #false echo '<br />'; ?> </body> </html>
결과는 아래와 같다.
1!=2 : bool(true) 1!=1 : bool(false) "one"!="two" : bool(true) "one"!="one" : bool(false)
>
/compare/compare3.php
https://github.com/egoing/phpeverybody/blob/master/compare/compare3.php
좌항이 우항보다 크다면 참, 그렇지 않다면 거짓임을 알려주는 연산자다. '<'는 반대의 의미로 언급은 생략하겠다.
<html> <body> <?php echo "10>20 : "; var_dump(10>20); #false echo '<br />'; echo "10>1 : "; var_dump(10>1); #true echo '<br />'; echo '10>10 : '; var_dump(10>10); #false ?> </body> </html>
결과는 아래와 같다.
10>20 : bool(false) 10>1 : bool(true) 10>10 : bool(false)
>=
좌항이 우항보다 크거나 같다. '<='는 반대의 의미로 언급은 생략하겠다.
/compare/compare4.php
https://github.com/egoing/phpeverybody/blob/master/compare/compare4.php
<html> <body> <?php echo "10>=20 : "; var_dump(10>=20); #false echo '<br />'; echo "10>=1 : "; var_dump(10>=1); #true echo '<br />'; echo '10>=10 : '; var_dump(10>=10); #true ?> </body> </html>
결과는 아래와 같다.
10>=20 : bool(false) 10>=1 : bool(true) 10>=10 : bool(true)
===
/compare/compare5.php
https://github.com/egoing/phpeverybody/blob/master/compare/compare5.php
===는 좌항과 우항이 정확하게 같다는 의미다. ==와의 차이점은 ==이 형변환의 결과를 비교 하지만, ===는 양쪽 항이 데이터 형식까지 정확하게 동일해야 같은 것으로 인정한다는 점이다. 형변환이란 PHP가 코딩의 편의성을 위해서 맥락에 따라서 알아서 데이터의 형식을 변환해주는 것을 의미한다. 이에 대한 자세한 내용은 후속 수업을 통해서 살펴볼 예정이다. 아래의 예제를 보자.
echo "1 == '1' : "; var_dump(1 == '1'); echo "<br />1 === '1' : "; var_dump(1 === '1');