Prefixový a postfixový typ v PHP

Operace inkrementace a dekrementace lze zapisovat dvěma způsoby. V postfixovém tvaru se operace zapisuje za název proměnné, takto: $a++, a v prefixovém tvaru - před název proměnné, takto: ++$a. Podívejme se na příkladech, v čem je rozdíl mezi dvěma způsoby.

V následujícím příkladu první echo vypíše 0, protože nejprve proběhne výpis na obrazovku, a teprve potom se proměnná zvýší:

php<?php
  $num = 0;
  echo $num++; // vypíše 0, protože proměnná se zvýší až po echo
  echo $num;   // vypíše 1 - proměnná se změnila
?>

A nyní se proměnná nejprve zvýší, a teprve potom proběhne výpis na obrazovku:

php<?php
  $num = 0;
  echo ++$num; // vypíše 1 - proměnná se zvýšila okamžitě
?>

Toto chování platí nejen pro výpis na obrazovku, ale i pro přiřazení:

php<?php
  $num1 = 0;
  $num2 = $num1++; // do proměnné $num2 se zapíše 0
  echo $num2;      // vypíše 0
  echo $num1;      // vypíše 1 - proměnná $num1 se změnila po zápisu do $num2
?>

A nyní změníme postfixový tvar na prefixový:

php<?php
  $num1 = 0;
  $num2 = ++$num1; // do proměnné $num2 se zapíše 1
  echo $num2;      // vypíše 1
?>

Pokud se naše operace provádí na samostatném řádku, pak není rozdílu mezi prefixovým a postfixovým tvarem:

php<?php
  $num = 0;
  ++$num;
  $num++;
  echo $num; // vypíše 2
?>
Задание 1

Bez spuštění kodu určete, co se vypíše na obrazovku:

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

Bez spuštění kodu určete, co se vypíše na obrazovku:

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

Bez spuštění kodu určete, co se vypíše na obrazovku:

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

Bez spuštění kodu určete, co se vypíše na obrazovku:

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

Bez spuštění kodu určete, co se vypíše na obrazovku:

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

Bez spuštění kodu určete, co se vypíše na obrazovku:

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

Bez spuštění kodu určete, co se vypíše na obrazovku:

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

Bez spuštění kodu určete, co se vypíše na obrazovku:

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

Bez spuštění kodu určete, co se vypíše na obrazovku:

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