Typ prefiksowy i postfiksowy w PHP

W rzeczywistości operacje inkrementacji i dekrementacji można zapisać na dwa sposoby. W formie postfiksowej operacja zapisywana jest po nazwie zmiennej, w ten sposób: $a++, a w formie prefiksowej - przed nazwą zmiennej, w ten sposób: ++$a. Spójrzmy na przykładach, jaka jest różnica między tymi dwoma sposobami.

W następnym przykładzie pierwsze echo wyświetli 0, ponieważ najpierw nastąpi wypisanie na ekran, a dopiero potem zmienna zwiększy się:

php<?php
  $num = 0;
  echo $num++; // wyświetli 0, ponieważ zmienna zwiększy się dopiero po echo
  echo $num;   // wyświetli 1 - zmienna uległa zmianie
?>

A teraz zmienna najpierw zwiększy się, a dopiero potem nastąpi wypisanie na ekran:

php<?php
  $num = 0;
  echo ++$num; // wyświetli 1 - zmienna zwiększyła się od razu
?>

Takie zachowanie dotyczy nie tylko wypisywania na ekran, ale także przypisania:

php<?php
  $num1 = 0;
  $num2 = $num1++; // do zmiennej $num2 zostanie zapisane 0
  echo $num2;      // wyświetli 0
  echo $num1;      // wyświetli 1 - zmienna $num1 zmieniła się po zapisaniu do $num2
?>

A teraz zmieńmy formę postfiksową na prefiksową:

php<?php
  $num1 = 0;
  $num2 = ++$num1; // do zmiennej $num2 zostanie zapisane 1
  echo $num2;      // wyświetli 1
?>

Jeśli nasza operacja wykonywana jest w osobnym wierszu, to nie ma różnicy między formą prefiksową a postfiksową:

php<?php
  $num = 0;
  ++$num;
  $num++;
  echo $num; // wyświetli 2
?>
Задание 1

Bez uruchamiania kodu określ, co zostanie wyświetlone na ekranie:

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

Bez uruchamiania kodu określ, co zostanie wyświetlone na ekranie:

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

Bez uruchamiania kodu określ, co zostanie wyświetlone na ekranie:

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

Bez uruchamiania kodu określ, co zostanie wyświetlone na ekranie:

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

Bez uruchamiania kodu określ, co zostanie wyświetlone na ekranie:

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

Bez uruchamiania kodu określ, co zostanie wyświetlone na ekranie:

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

Bez uruchamiania kodu określ, co zostanie wyświetlone na ekranie:

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

Bez uruchamiania kodu określ, co zostanie wyświetlone na ekranie:

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

Bez uruchamiania kodu określ, co zostanie wyświetlone na ekranie:

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