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