Նախածանցային և վերջածանցային տեսակները 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

Չգործարկելով կոդը, որոշեք, թե ինչ կարտածվի էկրանին.

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