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;
?>