Префиксен и постфиксен тип в 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 - променливата $num1 се промени след записването в $num2
?>

А сега нека сменим постфиксната форма с префиксна:

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

Без да пускате кода, определете какво ще се изveде на екрана:

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