증감 연산자(Increament / Decreament)


증가/감소 연산자란 변수와 연산자를 결합하여 일정한 수를 증가 또는 감소하는 특수한 연산 처리입니다.
이 특수한 연산자는 피연산자를 더하거나 빼는 등의 단항연산을 수행합니다.

증감 연산자는 명령형 프로그래밍 언어들은 공통적으로 구현되여 있습니다.

|문법|

변수명 연산자
or
연산자 변수명

증감연산자를 처음으로 도입된 것은 1996년 B언어에 켄 톰프슨이 처음으로 도입되어 사용되었다고 합니다. B/C언어에 문법적으로 파생된 언어들 대부분이 증가연산자는 ++로, 감소 연산자는 --로 사용됩니다.


후순위 증가


후순위 증가 연산자란 연산자 기호가 변수명 뒤쪽에 있는 경우를 말합니다.
대표적으로 가장 많이 사용하는 타입이기도 합니다.

$i++$i = $i + 1과 같은 의미입니다.
즉 변수명 뒤에 붙은 ++ 기호는 변수에 1을 더한다는 의미입니다.

예제 파일) inc-01.php

<?php
	$i = 0;
	echo "연산자 실행 전 ";
	echo "i = $i <br>";

	echo "연산자 실행 후 ";
	$i++;
	echo "i = $i <br>";
?>

결과

연산자 실행 전 i = 0
연산자 실행 후 i = 1 

증가 값이 1 이외의 설정 방법은 변수명 += 증가값;으로 작성하면 됩니다.

$i += 2;	// 2씩 증가합니다.
$i += 5;	// 5씩 증가합니다.
$i += 10;	// 10씩 증가합니다.

예제 파일) inc-02.php

<?php
	$i = 0;
	echo "연산자 실행 전 ";
	echo "i = $i <br>";

	echo "연산자 2 실행 후 ";
	$i += 2;
	echo "i = $i <br>";

	echo "연산자 3 실행 후 ";
	$i += 3;
	echo "i = $i <br>";

	echo "연산자 10 실행 후 ";
	$i += 10;
	echo "i = $i <br>";
?>

결과

연산자 실행 전 i = 0
연산자 2 실행 후 i = 2
연산자 3 실행 후 i = 5
연산자 10 실행 후 i = 15 


후순위 감소


++ 값이 1씩 증가하는 방식이라면, --는 1씩 감소합니다.

$i--$i = $i - 1 과 같은 의미입니다. 즉 변수명 뒤에 붙은 -- 기호는 변수에 1을 감소한다는 의미입니다.

예제 파일) inc-03.php

<?php
	$i = 0;
	echo "연산자 실행 전 ";
	echo "i = $i <br>";

	echo "연산자 실행 후 ";
	$i--;
	echo "i = $i <br>";
?>

결과

연산자 실행 전 i = 0
연산자 실행 후 i = -1 

증가 값이 1 이외의 설정 방법은 변수명 -= 증가값;으로 작성하면 됩니다.

$i -= 2;		// 2씩 감소합니다.
$i -= 5;		// 5씩 감소합니다.
$i -= 10;	// 10씩 감소합니다.

예제 파일) inc-04.php

<?php
	$i = 0;
	echo "연산자 실행 전 ";
	echo "i = $i <br>";

	echo "연산자 2 실행 후 ";
	$i -= 2;
	echo "i = $i <br>";

	echo "연산자 3 실행 후 ";
	$i -= 3;
	echo "i = $i <br>";

	echo "연산자 10 실행 후 ";
	$i -= 10;
	echo "i = $i <br>";
?>

결과

연산자 실행 전 i = 0
연산자 2 실행 후 i = -2
연산자 3 실행 후 i = -5
연산자 10 실행 후 i = -15 


선순위 증가


증가 연산자의 선순위와 후순위의 차이점은 증가 값의 변화가 변수 사용 전에 변경이 되는지 사용 후에 변경이 되는지의 차이입니다.

예제 파일) inc-05.php

<?php
	echo "후순의 증가 <br>";
	$i = 0;
	echo $i++;
	echo "<br>";
	echo $i++;

	echo "<br>";
	echo "선순의 증가 <br>";
	
	$j = 0;
	echo ++$j;
	echo "<br>";
	echo ++$j;

?>

결과

후순의 증가
0
1
선순의 증가
1
2

위의 예를 보면 후순위 증가 방식은 $i의 값을 한 번 사용하고 ++로 1의 값이 증가합니다. 따라서 첫 번째 출력은 0이 출력되고 나서 1이 증가됩니다.

반면에 선순위 방식은 $i앞++가 붙었기 때문에 $i를 사용하기 전에 1을 증가 후 변수의 값이 사용됩니다.


선순위 감소


선순위 감소 또한 -- 값이 변수명 앞뒤 위치에 따라서 감소 값의 적용 차이가 발생합니다.

예제 파일) inc-06.php

<?php
	echo "후순의 감소 <br>";
	$i = 0;
	echo $i--;
	echo "<br>";
	echo $i--;
	echo "<br>";
	echo $i;

	echo "<br>";
	echo "선순의 감소 <br>";
	
	$j = 0;
	echo --$j;
	echo "<br>";
	echo --$j;
	echo "<br>";
	echo $j;

?>

결과

후순의 감소
0
-1
-2
선순의 감소
-1
-2
-2

위의 예제를 보면 후순위일 때는 변수를 참조 후에 값이 변경됩니다.
먼저 0을 출력 후 -1로 변경되고, -1로 출력 후 -2로 변경됩니다. 따라서 마지막 세 번째 출력도 -2가 출력됩니다.

선순위일 때는 먼저 값이 변경되어 -1이 출력되고, 두 번째도 값이 변경된 후에 -2가 출력됩니다.
그래서 마지막 세 번째는 그냥 값의 변경됨 없이 -2가 출력됩니다.


복합 연산


+++= 2 와 값이 증가 값을 변경할 수 있었습니다.

++-- 이외에,

*=	$a = $a * 값;
/=	$a = $a / 값;
%=	$a = $a % 값;

형태를 이용하여 다른 산술 연산자와 결합하여 처리할 수도 있습니다.