[연산자]

# 본내용은 스킨제작을 목적으로 하는 분들을 위한 입문자용 기본 강좌입니다.

# 입문자가 쉽게 php를 느낄수 있도록 되도록 간추려서 쉽게 구성한 강좌입니다.

# 입문자가 아니면 보실 필요가 없습니다.

# 강좌의 순서는 입문자가 쉽게 와닿을수 있도록 임의로 조정했습니다.

# 강좌는 누구나 읽고 사용할수 있지만, 다른 책의 내용으로 포함될수 없습니다.

1. 연산자란?

연산자란 쉽게 설명하면,

php의 규칙중의 하나 로서 어떤 동작(연산)에 대한 것을 기호로 규정한것입니다.

그리고 연산의 결과로서 참이나 거짓 또는 지정된 값을 돌려주는 것을 말합니다.

산수나 수학시간 자주 보았던 눈에 익숙한 것도 있고 그렇지 않은 것도 있습니다.

연산자를 잘 못 이해하면 프로그램의 결과가 전혀 다른 방향으로 나올수 있으니

꼭 숙지하도록 하여야 합니다.

여기서는 여러가지 연산자중 입문자가 반드시 알아야 할것만 다룹니다.

2. 연산자의 종류

1) 산술연산자 + - * / %

산술 연산자는 우리가 산수나 수학에서 자주 접했던 기호입니다.

의미가 비슷한 것이 대부분이나 완전히 다른 것도 있습니다.

A. + 덧셈

<?php

$a = 5;//$a라는 변수에 숫자 5를 대입합니다.

$b = 3;//$b라는 변수에 숫자 3을 대입합니다.

$c = $a + $b;//$c라는 변수에 $a 와 $b 를 더한 값을 대입합니다.

echo $c;//$c 를 출력하여 봅니다.

?>

B. - 뺄셈

<?php

$a = 5;//$a라는 변수에 숫자 5를 대입합니다.

$b = 3;//$b라는 변수에 숫자 3을 대입합니다.

$c = $a - $b;//$c라는 변수에 $a 와 $b 를 뺀 값을 대입합니다.

echo $c;//$c 를 출력하여 봅니다.

?>

C. * 곱셈

<?php

$a = 5;//$a라는 변수에 숫자 5를 대입합니다.

$b = 3;//$b라는 변수에 숫자 3을 대입합니다.

$c = $a * $b;//$c라는 변수에 $a 와 $b 를 곱한 값을 대입합니다.

echo $c;//$c 를 출력하여 봅니다.

?>

D. / 나눗셈

<?php

$a = 5;//$a라는 변수에 숫자 5를 대입합니다.

$b = 3;//$b라는 변수에 숫자 3을 대입합니다.

$c = $a / $b;//$c라는 변수에 $a 를 $b로 나눈값을 대입합니다.

echo $c;//$c 를 출력하여 봅니다.

?>

E. % 나누고 난 나머지

이것은 퍼센트를 뜻하는 기호가 아닙니다.

php에서 %은 앞의 수를 뒤의 수로 나누고 난 나머지 입니다.

<?php

$a = 5;//$a라는 변수에 숫자 5를 대입합니다.

$b = 3;//$b라는 변수에 숫자 3을 대입합니다.

$c = $a % $b;//$c라는 변수에 $a 를 $b로 나눈 후 나머지를 대입합니다.

echo $c;//$c 를 출력하여 봅니다.

?>

이것의 결과는 얼마일까요?

직접 출력해보고 예제도 변형해서 해봄으로서 내용을 이해하도록 합니다.

F. 잘 못된 사용

산술 연산자는 반드시 정수나 실수형 변수를 사용하여야만 합니다.

문자결합형의 변수는 산술 연산자로 연산 할수 없습니다.

아래의 예제를 출력하여 봅니다.

<?php

$a = 5;//$a라는 변수에 숫자 5를 대입합니다.

$b = '우리나라';//$b라는 변수에 우리나라를 대입합니다.

$c = $a + $b;//$c라는 변수에 $a 를 $b로 더한값을 대입합니다.

echo '$c 를 출력하여 봅니다. : ';

echo $c;//$c 를 출력하여 봅니다.

echo '<br>'

$a = 5;//$a라는 변수에 숫자 5를 대입합니다.

$b = 'a';//$b라는 변수에 a를 대입합니다.

$c = $a + $b;//$c라는 변수에 $a 를 $b로 더한값을 대입합니다.

echo '$c 를 출력하여 봅니다. : ';

echo $c;//$c 를 출력하여 봅니다.

?>

결과가 어떻게 나올까요? 에러는 나지 않지만 전혀 예상치 못한 엉뚱한 값이 나옵니다.

따라서 산술 연산자를 사용함에 있어서 해당 변수들이 어떤 형태의 변수들인지 알고 있어야 합니다.

2) 대입연산자 =

이것은 변수 부분에서 설명했듯이 변수에 값을 대입할 때 사용합니다.

같다는 의미가 아닙니다.

<?php

$a = 5;//$a라는 변수에 숫자 5를 대입합니다.

$b = '우리나라';//$b라는 변수에 우리나라를 대입합니다.

echo '$a 를 출력하여 봅니다. : ';

echo $a;//$a 를 출력하여 봅니다.

echo '<br>'

echo '$b 를 출력하여 봅니다. : ';

echo $b;//$b 를 출력하여 봅니다.

?>

3) 비교연산자 == === != !== < > <= >=

비교연산자라는 것은 사용된 양옆의 값 비교하여

해당 연산자가 의미하는것과 같으면 true(1), 다르면 false(0)을 돌려줍니다.

A. == 같다

해당 == 연산자의 양옆의 두값이 같으면 true(1)을 반환, 다르면 false(0)을 반환

이해가 잘 안되신다구요?

그럼 아래예제를 그대로 복사해서 확인해봅니다.

<?php

$a = 5;//$a라는 변수에 숫자 5를 대입합니다.

$b = '우리나라';//$b라는 변수에 우리나라를 대입합니다.

$c = 5;//$c라는 변수에 숫자 5를 대입합니다.

echo '($a == $b) 의 결과는? ';

echo ($a == $b);

echo '<br>';

echo '($a == $c) 의 결과는? ';

echo ($a == $c);

?>

어떻게 나오나요?

참고로 값이 false 일경우에는 출력을 해도 아무것도 나오지 않습니다.

값이 true 일 경우에만 1이 출력되게 됩니다.

B. != 같지않다.

해당 != 연산자의 양옆의 두값이 같지 않으면 true(1)을 반환, 같으면 false(0)을 반환

<?php

$a = 5;//$a라는 변수에 숫자 5를 대입합니다.

$b = '우리나라';//$b라는 변수에 우리나라를 대입합니다.

$c = 5;//$c라는 변수에 숫자 5를 대입합니다.

echo '($a != $b) 의 결과는? ';

echo ($a != $b);

echo '<br>';

echo '($a != $c) 의 결과는? ';

echo ($a != $c);

?>

C. === 완전히 같다.

이것은 == 와는 다르게 값이나 변수형 모두 완전히 일치 하는 것을 의미합니다.

일단 이것은 중급이상이 되면 자연적으로 깨닫게 되는 개념입니다.

지금은 너무 깊게 생각하지 말고 이런것이 있다 정도로만 이해합니다.

D.== 완전히 같지 않다.

이것은 != 와는 다르게 값이나 변수형 모두 비교하여 일치하지 않는다라는 것을 의미합니다

이것역시 지금은 완전히 이해할 필요가 없습니다.

E. >

왼쪽이 오른쪽 보다 크면 참을 반환, 작거나 같으면 거짓을 반환합니다.

<?php

$a = 5;//$a라는 변수에 숫자 5를 대입합니다.

$b = 3;//$b라는 변수에 숫자 3을 대입합니다.

echo ($a > $b);

?>

F. <

> 과 반대입니다.

<?php

$a = 5;//$a라는 변수에 숫자 5를 대입합니다.

$b = 3;//$b라는 변수에 숫자 3을 대입합니다.

echo ($a < $b);

?>

G. >=

왼쪽이 오른쪽 보다 크거나 같으면 참을 반환, 작으면 거짓을 반환합니다.

사용할 때 >과 = 의 순서가 바뀌면 안됩니다.

<?php

$a = 5;//$a라는 변수에 숫자 5를 대입합니다.

$b = 3;//$b라는 변수에 숫자 3을 대입합니다.

echo ($a >= $b);

?>

H. <=

>= 과 반대입니다.

<?php

$a = 5;//$a라는 변수에 숫자 5를 대입합니다.

$b = 3;//$b라는 변수에 숫자 3을 대입합니다.

echo ($a <= $b);

?>

4) 삼항 연산자 ?

이것은 국어에서 나오는 물음표가 아닙니다.

이것은 하나의 조건문을 연산자로 정의한것입니다.

형식은 다음과 같습니다.

값1 ? 값2 : 값3

값1이 참이면 값2를 반환, 값1이 거짓이면 값3을 반환

그누보드에서도 이연산자는 심심찮게 나옵니다.

이해하고 넘어가도록 합니다.

다음의 예제를 봅니다.

<?php

$a = 5;//$a라는 변수에 숫자 5를 대입합니다.

$b = 3;//$b라는 변수에 숫자 3을 대입합니다.

$c = ($a < $b) ? '$a가 작네' : '$b가 작네';

echo $c;//$c를 출력해봅니다.

?>

자 일단 먼저 브라우져로 해당 내용의 결과를 확인해봅니다.

예상했던 결과가 나왓나요?

다시 예제를 가지고 설명을 하자면

($a < $b) $a가 $b 보다 작은지 비교연산 한것입니다. 현재 $a에는 5가 대입되어져 있고 $b에는 3이 대입되어져 있습니다.

그러므로 거짓 즉 0을 돌려주겠죠?

위에서 설명햇듯이 비교연산의 결과가 거짓이면 : 을 기준으로 뒤의 값을 돌려줍니다.

즉, $c에는 $b가 작네 라는 값이 대입되게 됩니다.

만약, 이해가 안된다면 스스로가 다른 예제를 만들어서 여러각도로 확인하여 봅니다.

5) 에러제어 연산자 @

이것은 프로그램이 실행중 에러가 나더라도 무시하고, 그대로 프로그램이 종료되지 않고 진행되도록 하는 연산자입니다.

이것은 지금은 다루지 않고 나중에 일정 기간 지난다음 적절한 예제를 이해할수 있을때 다시 다루도록 하겠습니다.

지금은 넘어갑니다.

6) 증가 감소 연산자 ++ --

이것도 아주 중요한 연산자입니다. 그누보드 리스트 스킨 같은 곳에 보면

for문에 $i++ 이렇게 된것을 자주 볼것입니다.

그러므로 반듯이 이해 하여야 합니다.

이것은 모양은 같아도 변수의 앞에 붙냐 뒤에 붙냐에 따라

선행연산자, 후행 연산자라고 부릅니다.

선행이냐 후행이냐에 따라서 결과가 완전히 다르니 잘 이해하기 바랍니다.

선행연산이라는 것은 먼저 연산을 수행하고 그 결과값을 돌려줍니다.

후행연산이라는 것은 먼저 값을 도려주고 나서 연산을 수행합니다.

일반적으로는 후행이 많이 쓰입니다.

A. ++

이것은 같이 사용되는 변수에다가 1을 더해주는 연산자입니다.

다음의 예제를 봅니다.

<?php

$a = 5;//$a라는 변수에 숫자 5를 대입합니다.

$b = 3;//$b라는 변수에 숫자 3을 대입합니다.

echo '$a를 ++ 선행연산, 그 결과를 출력합니다. : ';

echo ++$a;//$a를 ++ 선행연산, 그 결과를 출력합니다.

echo '<br>';

echo '$b를 ++ 후행연산, 그 결과를 출력합니다. : ';

echo $b++;//$b를 ++ 후행연산, 그 결과를 출력합니다.

echo '<br>';

echo '확인을 위해 $a를 한번더 출력합니다. : ';

echo $a;//확인을 위해 $a를 한번더 출력합니다.

echo '<br>';

echo '확인을 위해 $b를 한번더 출력합니다. : ';

echo $b;//확인을 위해 $b를 한번더 출력합니다.

echo '<br>';

?>

테스트 해보기 전에 먼저 어떤 결과가 나올지를 예상해 봅니다.

그리고 나서 테스트 해봅니다.

예상하던 결과가 나왔나요?

다시 한번 설명하자면

연산자라는 것은 해당 연산을 한후 결과값을 돌려줍니다.

선행연산이라는 것은 지정된 연산을 먼저 수행하고 그결과를 돌려줍니다.

후행연산이라는 것은 기존 값을 먼저 돌려주고 지정된 연산을 수행합니다.

B. --

이것은 위와 반대로 변수에다가 1을 빼주는 연산자입니다.

예제는 위의 것을 응용하여 변환하여 테스트해봅니다.

이치는 같습니다.

7) 문자열 연산자 .

이것은 국어에서 보는 마침표가 아닙니다.

이것은 양옆의 변수를 차례로 이어주는 역활을 합니다.

이것의 특징은 양옆의 변수가 어떤 형태의 변수라도 모두 문자형 변수로 인식합니다.

<?php

$a = '우리나라';//$a 에 우리나라 라는 값을 대입합니다.

$b = ' 좋은나라';//$b 에 공백 하고 좋은나라 라는 값을 대입합니다.

$c = $a . $b;//$a 와 $b 두변수를 이어서 $c에 대입합니다.

echo $c;//$c를 출력해봅니다.

?>

8) 약식 표현

하나의 변수에다가 어떤 연산을 하고 그 결과를 다시 그 변수 자신에게 대입할 경우에는 약식 표현을 사용할수 있습니다.

이것이 가능한 연산자는 산술연산자의 일부와(+ - * /)와 문자열 연산자만 사용가능합니다.

그누보드에서도 자주 약식 표현이 사용되므로 이해하고 넘어갑니다.

<?php

$a = 5;// $a에 5를 대입

$b = 5;// $b에 5를 대입

$a = $a + 5;//$a에다가 5를 더한 다음 다시 그자신 $a에다가 그 결과값을 대입

$b += 5;//위의 약식 표현임, $b에다가 5를 더한 다음 다시 그자신 $b에다가 그 결과값을 대입

echo $a;

echp '<br>';

echo $b;

?>

위에서도 언급했듯이 연산자는 아주 중요합니다.

연산자를 잘 못 이해하면, 자기가 원하는 방향의 결과가 나오지 못하고

엉뚱한 결과가 나오게 됩니다.

반듯이 시간을 투자해서라도 이해하고 넘어갑니다.