Prefiksni i postfiksni tip u PHP

U stvari, operacije inkrementa i dekrementa mogu se zapisati na dva načina. U postfiksnom obliku operacija se piše posle imena promenljive, ovako: $a++, a u prefiksnom obliku - pre imena promenljive, ovako: ++$a. Hajde da pogledamo na primerima, u čemu je razlika između ova dva načina.

U sledećem primeru prvi echo će ispisati 0, jer će se prvo izvršiti ispis na ekran, a tek onda će se promenljiva povećati:

php<?php
  $num = 0;
  echo $num++; // ispisaće 0, jer će se promenljiva povećati tek nakon echo
  echo $num;   // ispisaće 1 - promenljiva se promenila
?>

A sada će se promenljiva prvo povećati, a tek onda će se izvršiti ispis na ekran:

php<?php
  $num = 0;
  echo ++$num; // ispisaće 1 - promenljiva se odmah povećala
?>

Ovo ponašanje važi ne samo za ispis na ekran, već i za dodelu vrednosti:

php<?php
  $num1 = 0;
  $num2 = $num1++; // u promenljivu $num2 biće upisano 0
  echo $num2;      // ispisaće 0
  echo $num1;      // ispisaće 1 - promenljiva $num1 se promenila nakon upisa u $num2
?>

A sada ćemo zameniti postfiksni oblik prefiksnim:

php<?php
  $num1 = 0;
  $num2 = ++$num1; // u promenljivu $num2 biće upisano 1
  echo $num2;      // ispisaće 1
?>

Ako se naša operacija izvršava u posebnom redu, onda nema razlike između prefiksnog i postfiksnog oblika:

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

Ne pokrećući kod, odredite šta će se ispisati na ekran:

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

Ne pokrećući kod, odredite šta će se ispisati na ekran:

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

Ne pokrećući kod, odredite šta će se ispisati na ekran:

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

Ne pokrećući kod, odredite šta će se ispisati na ekran:

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

Ne pokrećući kod, odredite šta će se ispisati na ekran:

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

Ne pokrećući kod, odredite šta će se ispisati na ekran:

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

Ne pokrećući kod, odredite šta će se ispisati na ekran:

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

Ne pokrećući kod, odredite šta će se ispisati na ekran:

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

Ne pokrećući kod, odredite šta će se ispisati na ekran:

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