PHP의 전위 및 후위 형식

사실 증가 및 감소 연산은 두 가지 방식으로 작성할 수 있습니다. 후위 형식에서는 연산이 변수 이름 뒤에 기록됩니다. 이렇게요: $a++. 그리고 전위 형식에서는 연산이 변수 이름 앞에 기록됩니다. 이렇게요: ++$a. 예제를 통해 두 방식의 차이점을 살펴보겠습니다.

다음 예제에서 첫 번째 echo는 0을 출력합니다. 화면에 출력이 먼저 수행된 후에 변수가 증가하기 때문입니다:

php<?php
  $num = 0;
  echo $num++; // 0을 출력합니다. echo 이후에 변수가 증가하기 때문입니다.
  echo $num;   // 1을 출력합니다 - 변수가 변경되었습니다.
?>

이제는 변수가 먼저 증가한 후에 화면에 출력이 이루어집니다:

php<?php
  $num = 0;
  echo ++$num; // 1을 출력합니다 - 변수가 즉시 증가했습니다.
?>

이러한 동작은 화면 출력뿐만 아니라 대입에서도 동일하게 적용됩니다:

php<?php
  $num1 = 0;
  $num2 = $num1++; // $num2 변수에는 0이 기록됩니다.
  echo $num2;      // 0을 출력합니다.
  echo $num1;      // 1을 출력합니다 - $num2에 기록된 후 $num1 변수가 변경되었습니다.
?>

이제 후위 형식을 전위 형식으로 바꿔보겠습니다:

php<?php
  $num1 = 0;
  $num2 = ++$num1; // $num2 변수에는 1이 기록됩니다.
  echo $num2;      // 1을 출력합니다.
?>

우리의 연산이 별도의 줄에서 수행된다면 전위 형식과 후위 형식 사이에 차이가 없습니다:

php<?php
  $num = 0;
  ++$num;
  $num++;
  echo $num; // 2를 출력합니다.
?>
Задание 1

코드를 실행하지 않고 화면에 무엇이 출력될지 결정하세요:

php<?php
  $num = 3;
  echo ++$num;
?>
Задание 2

코드를 실행하지 않고 화면에 무엇이 출력될지 결정하세요:

php<?php
  $num = 3;
  echo $num++;
?>
Задание 3

코드를 실행하지 않고 화면에 무엇이 출력될지 결정하세요:

php<?php
  $num = 3;
  echo --$num;
?>
Задание 4

코드를 실행하지 않고 화면에 무엇이 출력될지 결정하세요:

php<?php
  $num = 3;
  echo $num--;
?>
Задание 5

코드를 실행하지 않고 화면에 무엇이 출력될지 결정하세요:

php<?php
  $num1 = 3;
  $num2 = ++$num1;
  echo $num1;
  echo $num2;
?>
Задание 6

코드를 실행하지 않고 화면에 무엇이 출력될지 결정하세요:

php<?php
  $num1 = 3;
  $num2 = $num1++;
  echo $num1;
  echo $num2;
?>
Задание 7

코드를 실행하지 않고 화면에 무엇이 출력될지 결정하세요:

php<?php
  $num1 = 3;
  $num2 = --$num1;
  echo $num1;
  echo $num2;
?>
Задание 8

코드를 실행하지 않고 화면에 무엇이 출력될지 결정하세요:

php<?php
  $num1 = 3;
  $num2 = $num1--;
  echo $num1;
  echo $num2;
?>
Задание 9

코드를 실행하지 않고 화면에 무엇이 출력될지 결정하세요:

php<?php
  $num1 = 3;
  $num1++;
  $num2 = $num1--;
  echo $num1++;
  echo --$num2;
?>