Prefiksinis ir postfiksinis tipas PHP

Tiesą sakant, inkrementacijos ir dekrementacijos operacijos gali būti užrašomos dviem būdais. Postfiksiniu atveju operacija rašoma po kintamojo pavadinimo, štai taip: $a++, o prefiksiniu atveju – prieš kintamojo pavadinimą, štai taip: ++$a. Pažiūrėkime pavyzdžiais, kuo skiriasi šie du būdai.

Šiame pavyzdyje pirmasis echo išves 0, nes pirmiausia veiks išvedimas į ekraną, o tik tada kintamasis padidės:

php<?php
  $num = 0;
  echo $num++; // išves 0, nes kintamasis padidės tik po echo
  echo $num;   // išves 1 - kintamasis pasikeitė
?>

O dabar kintamasis pirmiausia padidės, o tik tada bus atliktas išvedimas į ekraną:

php<?php
  $num = 0;
  echo ++$num; // išves 1 - kintamasis padidėjo iš karto
?>

Toks elgesys galioja ne tik išvedimui į ekraną, bet ir priskyrimui:

php<?php
  $num1 = 0;
  $num2 = $num1++; // į kintamąjį $num2 įrašys 0
  echo $num2;      // išves 0
  echo $num1;      // išves 1 - kintamasis $num1 pasikeitė po įrašymo į $num2
?>

O dabar pakeisime postfiksinę formą į prefiksinę:

php<?php
  $num1 = 0;
  $num2 = ++$num1; // į kintamąjį $num2 įrašys 1
  echo $num2;      // išves 1
?>

Jei mūsų operacija atliekama atskiroje eilutėje, tarp prefiksinės ir postfiksinės formų skirtumo nėra:

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

Nepaleisdami kodo, nustatykite, kas bus išvesta į ekraną:

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

Nepaleisdami kodo, nustatykite, kas bus išvesta į ekraną:

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

Nepaleisdami kodo, nustatykite, kas bus išvesta į ekraną:

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

Nepaleisdami kodo, nustatykite, kas bus išvesta į ekraną:

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

Nepaleisdami kodo, nustatykite, kas bus išvesta į ekraną:

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

Nepaleisdami kodo, nustatykite, kas bus išvesta į ekraną:

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

Nepaleisdami kodo, nustatykite, kas bus išvesta į ekraną:

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

Nepaleisdami kodo, nustatykite, kas bus išvesta į ekraną:

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

Nepaleisdami kodo, nustatykite, kas bus išvesta į ekraną:

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