Loading

블로그채널

Search !

[PHP] 강좌 #9 산술, 대입, 비교, 증감 연산자


우리는 연산자에 대해 이미 잘 알고 있습니다. 초등학교 시절부터 대소 비교하는 문제를 많이 다루었고 중학교 때는 집합에서 논리곱, 논리합 등을 배웠습니다. 그래서 수학에서 사용하는 것과 다른 부분만 알고 넘어가면 됩니다

 

연산자는 7가지로 나눌 수 있습니다.

  • 산술 연산자 Arithmetic operators
  • 대입 연산자 Assignment operators
  • 비교 연산자 Comparison operators
  • 증감 연산자 Increment/Decrement operators
  • 논리 연산자 Logical operators
  • 문자열 연산자 String operators
  • 배열 연산자 Array operators 

[PHP] 강좌 #9 산술, 대입, 비교, 증감 연산자

[PHP] 강좌 #9 산술, 대입, 비교, 증감 연산자

 

 

 

산술 연산자 Arithmetic operators


+ 덧셈 $x + $y
뺄셈 $x - $y
* 곱셈   $x * $y
/ 나눗셈 $x / $y
% 나머지 $x % $y


이런 연산자는 프로그래밍 언어에서 자주 사용됩니다


나머지(%) 연산자는 어떤 수를 원하는 수로 나눈 나머지 값을 말합니다
.  어떤 수를 10으로 나누면 나머지 값이 0에서 9까지 분포됩니다. 

나머지 연산자를 언제 사용하는지 예를 보이겠습니다. 

rand()
라는 함수가 0에서 32767까지 랜덤한 값을 나타내는데요, 1에서 10까지 랜덤한 수를 얻고 싶다면 다음과 같이 쓸 수 있습니다. %10을 하면 나머지가 0에서 9까지 나오는데 여기서 1을 더하니 1에서 10까지 랜덤한 숫자가 나오게 되는 것이지요. 

 

echo rand()%10+1;

 

위 코드를 좀 더 편리하고 쓰고 싶은 분은 함수 rand(1,10)을 사용하면 됩니다. 첫 인자값은 랜덤 최소값이고 두 번째 인자값은 랜덤 최대값입니다. 

 

거듭 제곱 ** PHP 5.6에서 사용가능하다고 합니다. 

 

 

대입 연산자 Assignment Operators


수식 같은 표현
x = y x = y
x += y x = x + y
x -= y x = x - y
x *= y x = x * y
x /= y x = x / y
x %= y x = x % 


x = y; 라는 이야기는 수학에서처럼 똑같다가 아니라 y값을 x에 대입하겠다는 이야기입니다. x = x + y;라고 쓰기 귀찮으니 식을 줄여서 x+=y;라고 표현할 수 있습니다. 나머지 산술 연산자를 이용해서 대입 연산자를 표현할 수 있습니다. 

 

 

비교 연산자 Comparison operators


== $x == $y 서로 같다
=== $x === $y 서로 같고 자료형도 같다.
!= $x != $y 서로 같지 않다.
<> $x <> $y 서로 같지 않다.
!== $x !== $y 서로 같지 않거나 혹은 자료형이 같지 않다.
> $x > $y 크다
< $x < $y 작다
>= $x >= $y 크거나 같다
<= $x <= $y 작거나 같다


수학에서는 
= 기호가 서로 같다를 의미하는데요, 프로그래밍 언어에서는 = 기호는 대입 연산자이고 == 기호가 비교 연산자입니다. 아래 코드를 실행하면 참일 때 1이 나오거나 거짓라면 아무것도 나올텐데요, 두 값이 서로 같습니까? 어떤 값이 출력 될 것 같습니까?


$x = 100;

$y = “100”;

echo $x == $y;

 

위 코드는 1값이 출력됩니다. 대부분 언어에서는 문자열 100을 숫자로 형변환해서 비교해야하지만 PHP에서는 문자와 숫자를 간편하게 비교 연산자(==)로 서로 값을 비교할 수 있습니다. 형변환해야 하는 수고스러움이 사라지는 것이지요. 참고로 C언어에서 문자열을 숫자로 바꾸기 위해 atoi함수를 사용해야합니다. 


비교 연산자 
‘===’는 값이 서로 같고 자료형까지 일치할 때 참값으로 표현합니다. 


$x = 100;

$y = “100”;

echo $x === $y; // 출력값 없음

 

위 코드는 값은 같지만 자료형이 일치하지 않아 거짓값이 되며 따라서 출력값은 없습니다.

‘!=’ ‘<>’는 서로 같지 않다는 비교연산자로 똑같은 표현입니다. ‘!==’ 연산자는 값이 서로 같지 않거나 혹은 자료형이 서로 같지 않을 때 참값으로 표현합니다. 

 

$x = 100;

$y = “100”;

echo $x !== $y; // 출력값 1

위 코드는 값이 서로 같지만 자료형이 틀려 참값으로 1을 출력합니다. 

 

증감 연산자 Increment/Decrement operators

 

++$x  전위형 증가 연산자 Pre-increment

$x++  후위형 증가 연산자 Post-increment

--$x 전위형 감소 연산자 Pre-decrement

$x-- 후위형 감가 연산자 Post-decrement

 

먼저 전위형부터 살펴보겠습니다. 

++$x, $x+=1, $x=$x+1, 모두 똑같은 표현입니다. 1을 증가시킨다는 의미입니다. ‘--’도 같은 형태이며 1을 감소시킨다는 의미입니다. 예제를 살펴보겠습니다. 

 

$x = 1;

echo ++$x; // 출력값 2

echo $x++; // 출력값 2 <-- 왜????

echo $x; // 출력값 3

 

출력값이 왜 2,2,3 순서로 나왔는지 이해가 되셨나요? $x++가 이상해보일 수 있습니다. 

 

$x++는 명령이 끝난 후 즉 세미콜론(;)이 끝난 후에 증가시키겠다는 이야기입니다. echo $x++는 먼저 $x값을 리턴한 후 echo명령이 끝난 후 증가시키겠다는 뜻이지요. 그래서 $x값이 2에서 3으로 증가하지 않았고 나중에 3으로 증가하였습니다.

 

너무 길어 질 것 같아서 논리 연산자, 문자열 연산자, 배열 연산자는 다음 시간이 다루어 보도록 하겠습니다

 

[Copyright ⓒ 블로그채널 무단전재 및 재배포 금지]