돌

산술 연산자, 대입 연산자

· 2014-08-26 (화) 17:46:24 · 3591

연산자 중에서 산술 연산자와 대입 연산자에 관해 알아보겠습니다.

먼저, PHP에서 제공하는 산술연산자에는 '+', '-', '*', '/', '%' 가 있습니다.

그럼, 다음의 예제를 통해서 각각의 산술 연산자가 어떻게 쓰이는지 보겠습니다.


<?
$first = 8;
$second = 3;

$addition = $first + $second;
$subtraction = $first - $second;
$multiplication = $first * $second;
$division = $first / $second;
$modulo = $first % $second;

echo("덧셈 : $addition <br>");
echo("뺄셈 : $subtraction <br>");
echo("곱셈 : $multiplication <br>");
echo("나눗셈 : $division <br>");
echo("나머지 : $modulo");
?>


위의 코드를 확인하면 결과는 다음과 같습니다.


덧셈 : 11
뺄셈 : 5
곱셈 : 24
나눗셈 : 2.6666666666667
나머지 : 2


설명이 필요없는 코드죠 ^^

이제 대입 연산자에 대해 알아보겠습니다.

기본적인 대입 연산자는 '=' 으로, 이것의 의미는 "같다" 가 아니라 '=' 을 기준으로 오른쪽의 (식의)값을 왼쪽의 변수에 할당하는 것을 의미합니다.

예를 들어, $first = 15; 라는 코드는 "15" 라는 값을 $first 에 할당한다는 의미입니다.

그럼, 다음 코드의 출력 결과는 어떻게 될까요?


<?
$result = $first = 5 + 3;
echo("result : $result, first : $first <br>");

$result = ($first = 5) + 3;
echo("result : $result, first : $first");
?>


결과는 아래와 같습니다.


result : 8, first : 8
result : 8, first : 5


위의 결과를 보면 표현식에서 괄호의 사용 여부에 따라 결과가 달라짐을 볼 수 있습니다.

바로, 위의 코드에서 $result = $first = 5 + 3; 구문은 먼저 5 + 3 을 계산해서 얻어진 8 을 $first 변수에 할당하고 다음으로 $first 변수의 값을 $result 에 할당하게됩니다.

따라서, $result 와 $first 두 변수의 값이 동일한 값 8 을 가지게 됩니다.

그런데, $result = ($first = 5) + 3; 구문처럼 중간에 괄호가 들어가게 되면 괄호로 묶여진 부분이 첫번째로 처리되어 $first 에 5 가 들어가며 다음으로 괄호로 묶여진 부분의 값인 5 와 3 이 더해져서 $result 에 할당되게 됩니다.

따라서, $result 와 $first 두 변수는 각각 값이 다르게 저장되죠.

또한, PHP 에서 제공하는 대입 연산자로 "+=", "-=", ".=" 가 있는데 각각 어떤 의미인지 다음의 코드를 보겠습니다.


<?
$first = 10;

$first += 7;
echo("first : $first <br>");

$first -= 4;
echo("first : $first <br>");

$second = "미즐은";

$second .= " 바보다 ~~";
echo("second : $second");
?>


위의 코드를 확인하면 다음과 같습니다.


first : 17
first : 13
second : 미즐은 바보다 ~~


대략 의미를 아시겠죠.

바로, $first += 7; 은 $first = $first + 7; 와 같은 의미로, 먼저 $first 에 10 이 할당되었기 때문에 이 코드는 $first = 10 + 7 과 같이 인식되어 $first 에는 17 가 저장됩니다.

$first -= 4; 역시 $first = $first - 4 와 같은 의미로 $first = 17 - 4 로 인식되어 13 이 $first 에 저장되겠죠.

마찬가지로 $second .= " 바보다 ~~"; 은 $second = $second . " 바보다 ~~"; 와 같은 의미이며, 이 구문이 쓰이기 전에 $second 에 "미즐은" 문자열이 저장되었기 때문에 $second = "미즐은" . " 바보다 ~~"; 와 같이 되어 $second 에는 "미즐은 바보다 ~~" 문자열이 저장되겠죠.

​

|
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

8,188건
+
제목 글쓴이 날짜 조회
14-08-26 조회 3,450
14-08-26 조회 3,675
14-08-26 조회 4,277
14-08-26 조회 3,592
14-08-26 조회 3,771
14-08-26 조회 3,705
14-08-26 조회 3,521
14-08-26 조회 3,670
14-08-26 조회 3,606
14-08-26 조회 3,783
14-08-25 조회 4,146
14-08-16 조회 4,273
14-08-12 조회 4,143
14-08-05 조회 3,968
14-08-04 조회 4,825
14-08-04 조회 3,995
14-08-01 조회 5,342
14-07-29 조회 4,379
14-07-10 조회 4,168
14-07-08 조회 4,822
14-07-08 조회 4,288
14-07-05 조회 4,059
14-05-26 조회 5,455
14-05-26 조회 4,252
14-05-21 조회 4,567
14-05-19 조회 7,504
14-05-17 조회 6,949
14-04-30 조회 7,335
14-04-27 조회 4,779
14-04-26 조회 4,925
14-04-13 조회 4,921
14-04-13 조회 4,177
14-03-25 조회 6,502
14-03-25 조회 4,152
14-03-12 조회 4,035
14-03-12 조회 5,406
14-02-24 조회 4,715
13-12-27 조회 4,006
13-11-18 조회 4,328
13-11-18 조회 6,785
13-10-17 조회 4,820
13-10-03 조회 6,295
13-10-02 조회 4,205
13-09-29 조회 4,742
13-09-29 조회 4,050
13-09-17 조회 3,821
13-09-11 조회 6,255
13-09-09 조회 4,281
13-09-05 조회 9,553
13-08-23 조회 5,840
13-08-22 조회 5,372
13-08-22 조회 4,575
13-08-22 조회 5,090
13-08-17 조회 5,995
13-08-17 조회 4,337
13-07-11 조회 5,533
13-07-11 조회 4,474
13-07-08 조회 4,114
13-07-04 조회 4,265
13-07-04 조회 4,169
13-07-04 조회 4,045
13-07-03 조회 5,956
13-07-01 조회 3,804
13-07-01 조회 3,750
13-07-01 조회 4,617
13-06-21 조회 6,347
13-06-14 조회 4,868
13-06-11 조회 3,710
13-06-06 조회 5,445
13-06-05 조회 4,162
13-05-11 조회 4,933
13-05-10 조회 4,499
13-05-10 조회 4,693
13-05-10 조회 4,207
13-05-08 조회 4,421
13-05-08 조회 3,684
13-05-08 조회 4,103
13-05-08 조회 5,309
13-04-05 조회 6,076
13-03-31 조회 5,687
13-03-24 조회 4,047
13-03-24 조회 6,223
13-03-23 조회 3,729
13-03-21 조회 3,821
13-03-20 조회 3,783
13-03-20 조회 4,270
13-03-20 조회 3,825
13-03-20 조회 3,902
13-03-20 조회 6,079
13-03-20 조회 4,110
13-03-20 조회 4,757
13-03-19 조회 5,819
13-03-14 조회 3,970
13-03-14 조회 4,319
13-03-14 조회 4,590
13-03-08 조회 4,184
13-03-03 조회 4,594
13-02-24 조회 5,019
13-02-21 조회 4,818
13-02-19 조회 4,830