[입문자용 강좌]연산자란? 꼭 숙지!!!! > 퍼블리셔팁

퍼블리셔팁

퍼블리싱과 관련된 유용한 정보를 공유하세요.
질문은 상단의 QA에서 해주시기 바랍니다.

[입문자용 강좌]연산자란? 꼭 숙지!!!! 정보

HTML [입문자용 강좌]연산자란? 꼭 숙지!!!!

첨부파일

연산자.hwp (48.0K) 48회 다운로드 2007-02-12 10:57:31

본문

[연산자]
# 본내용은 스킨제작을 목적으로 하는 분들을 위한 입문자용 기본 강좌입니다.
# 입문자가 쉽게 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;

?>



위에서도 언급했듯이 연산자는 아주 중요합니다.
연산자를 잘 못 이해하면, 자기가 원하는 방향의 결과가 나오지 못하고
엉뚱한 결과가 나오게 됩니다.

반듯이 시간을 투자해서라도 이해하고 넘어갑니다.<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:12:10 PHP & HTML에서 이동 됨]</div>
추천
2

댓글 41개

기본이나 전문 지식없이 삽질만 해대는 무대뽀 삽질파라...

올려주신 강좌가 뭔뜻인지 겨우 짐작만 할뿐입니다.

유창화님의 강좌를 참고하여 열공 하겠습니다. 감사합니다.^^
참 위의 예제중에 출력부분에

참일 경우에는 1이 출력 되고
거짓일 경우에는 아무것도 출력되지 않습니다.

참고하시기 바랍니다.
으헤헤헤~ 열심히 공부중입니다.
삼항연산자소스보고 항상 의문을 가졌는데.. 이강의를 보니 또 머리가 깨입니다. 으하하~ 막 천재가 되어가는 느낌!! ^0^/

아!!! 근데 강좌 내용에서..
D. 비교연산자 중..
1-2.에서 예제가 아래처럼..
<?
echo ($a != $b);
echo ($c != $c);
?>
인듯 싶고..
1-4.에서는 설명이 아래처럼..
!== 완전히 같지 않다.

..라고 나와야 할 듯 싶은데요. 차근 차근 읽어보니 저부분이 어색해서 한자 적어봅니다.
네 그렇군요

타자치기 힘들어서 복사햇더니 그만.,......

덧글이 세개 이상 달려서 수정이 안된다네요

관리자님이 좀 풀어주면 좋겠는데요.......

해주실 까요?
이 싸람이~~ 라고 할랬더니.. 너무 예의없는 듯싶고..
아니, 이분이... ㅠㅁㅠ
이러다가 정말 저 나이 잊어버릴 지도 모르겠습니다... ||OTL
고수님들은 한번씩 들어오셔서 잘 못된 내용이 없는지 감수 한번씩 해주시면 좋겠습니다.

모두 후배? 양성에 밑거름이 됩니다.

틀린부분은 없는지 오타는 없는지

타자치기 너무 힘드네요 ㅎㅎ
단디가 꼼꼼히란 말이군요...어감 상 단단히로 .. 해석햇습니다. 하하

지금은 위의 예제를 만들려는 홈피의 테스트에 일일히 올리면서 따라하고 있는데요.
그냥 매모장 같은것으로 적용해보고 지우고 이렇게 할 수는 없는지요....!!
처음 따라 하면서 부터 의문이 었는데요.

<?php
$a = 5;
$b = 3;
$c = $a - $b;
echo $c;
?>    이렇게 하면 $a=5;  이줄에서 오류 메세지가 뜨더군요.

<?
$a = 5;
$b = 3;
$c = $a - $b;
echo $c;
?>  이렇게 php를 지우고 하면 정상값이 2 이렇게 출력되네요.
질문할까 말까 망설이다 무조건 조금이라도 의문이 생기면 해결하고 가자는 ...
생각에 질문드립니다.  php이건 않붙이는 거죠???
Parse error: parse error, unexpected T_VARIABLE in c:\apm_setup\htdocs\test.php on line 2

이렇게 뜨던데요.
지금 다시 보니
<?이것과 php사이에 공간을 없애니깐 정상이네요.
<? php <=오류뜸
<?php  <=정상

죄송합니다.  ~..~  그리고 한나 터득입니다.
<?과 php사이에 공간을 없게하자 .... 파이팅입니다 ....!!
그리고 참 신기하네요 ... 하하하
네 공간이 있으면 안됩니다.
그리고 질문하는것 어려워마시고
질문하시고요
대신 제가 바쁘거나 일이있어 답변 못할때 서운해 하진 마세요.
네~
전 성격이 느긋해서 며칠쯤 기다리는 것 잘~합니다.

시간이 걸리더라도 좋으니 답변만 달아 주시면 감사하지요.
위의 예제를 하나하나 실행해 보니 깨달음이  있네요.저도 이번기회에 입문을 해서 눈뜬 장님 신세를 면해봐야겠어요. 좋은 강좌 감사드립니다.
입문자 강좌를 보시는 분들 중에

이내용을 숙지하신 분은 코멘트 남겨주세요.

요부분이 중요하기 때문에 이해못하고 넘어가면 안됩니다.

이해 안되는 부분 있어도 코멘트 남겨주세요.

이해되신분 세명 되면 다음 부분 진행할까 합니다.
감사합니다.^^
열심히 정독하고 이해하고 있습니다~~*

이 게시판에 하이라이트 기능과 수정이 가능하도록 조정이 되었으면 더욱 좋겠네요.^^

1-2 != 같지않다. 에서 예문과 1-4.== 완전히 같지 않다. 에서 연산자
두 부분이 이상하다 생각했는데 코멘트를 읽어 내려오면서 수정을 못하셔서 그렇다는 것을 알았습니다.
1-1 == 같다
해당 == 연산자의 양옆의 두값이 같으면 true(1)을 반환, 다르면 false(0)을 반환
이해가 잘 안되신다구요?
그럼 아래예제를 그대로 복사해서 확인해봅니다.
<?php

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

echo ($a == $b);
echo ($a == $c);

?>
어떻게 나오나요?
이해 되시죠?--------------
1이나오는데요. 
의문사항입니다.
echo ($a == $b); <=5와 우리나라는 같다
echo ($a == $c); <=5와5는 같다
이렇게 되는 것 같은데요...5와 우리나라는 같지 않은데 왜 true 즉 1이 출력되나요.?

-------

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

그리고 이부분은 아무것도 출력이 않되는데요...false일경우는 0 을 출력하지 않나요..?
아무것도 출력하지 않나요..?
예제에선 아직 문자열 연산자가 안나온 상태이기 때문에 그렇게 했는데요

정확하게 값을 확인하려면

다음과 같은 형태의 예제로 해보세요

<?php

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

echo '($a == $b) 이것의 결과는 ? ' . ($a == $b);
echo '<br>';
echo '($a == $c) 이것의 결과는 ? ' . ($a == $c);

?>

그리고 결과가 true 일경우에는 1이 찍히고
결과가 false 일경우에는 아무것도 안찍힙니다.

이유는 true, false는 참이냐 거짓이냐 의 상태를 나타내는 값이기 때문에
출력할경우 형태가 없습니다.
그런데 true일 경우 1이 찍히는 이유는
false 와 구별을 주기 위해
참을 나타내는 숫자 1이 찍히는 것입니다.
이부분은 비트에 대한 개념을 알아야 더 설명될수 있는 부분인데
일단은 이정도만 알고 넘어갑니다
초보인 제가 감히 다음으로 넘어가자 말자 할 처지가 아닌고로 이제나 저제나 눈빠지게 기다리고 있습니다.

다음 강좌를요 .... ~..~;;
친절한서기님 지식충전님 감사합니다.

제가 좀 급하게 처리할 부분이 있어서요 그것 하느라

못봣습니다.

제 지인이 운영하는 아이보스라는 사이트인데

많이 느려줘서 그것 고쳐주고 있습니다.

기존 아이보스 : http://old.i-boss.co.kr

수정한 아이보스 : http://i-boss.co.kr


빠른시일내에 강좌를 올리도록 하겠습니다.
전체 1,264
퍼블리셔팁 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT