PHPda prefiks va postfiks turi

Aslida inkrement va dekrement operatsiyalarini ikki usulda yozish mumkin. Postfiks ko'rinishda operatsiya o'zgaruvchi nomidan keyin yoziladi, mana shunday: $a++, prefiks ko'rinishda esa - o'zgaruvchi nomidan oldin, mana shunday: ++$a. Keling, misollar orqali ikki usul o'rtasidagi farqni ko'rib chiqaylik.

Quyidagi misolda birinchi echo 0 ni chiqaradi, chunki avval ekranga chiqarish amalga oshiriladi, shundan keyingina o'zgaruvchi oshadi:

php<?php
  $num = 0;
  echo $num++; // 0 ni chiqaradi, chunki o'zgaruvchi faqat echo'dan keyin oshadi
  echo $num;   // 1 ni chiqaradi - o'zgaruvchi o'zgardi
?>

Endi esa o'zgaruvchi avval oshadi, keyin esa ekranga chiqariladi:

php<?php
  $num = 0;
  echo ++$num; // 1 ni chiqaradi - o'zgaruvchi darhol oshdi
?>

Bunday xatti-harakat nafaqat ekranga chiqarish uchun, balki tayinlash uchun ham amal qiladi:

php<?php
  $num1 = 0;
  $num2 = $num1++; // $num2 o'zgaruvchisiga 0 yoziladi
  echo $num2;      // 0 ni chiqaradi
  echo $num1;      // 1 ni chiqaradi - $num1 o'zgaruvchisi $num2 ga yozilgandan keyin o'zgardi
?>

Endi postfiks shaklini prefiks shakliga o'zgartiramiz:

php<?php
  $num1 = 0;
  $num2 = ++$num1; // $num2 o'zgaruvchisiga 1 yoziladi
  echo $num2;      // 1 ni chiqaradi
?>

Agar operatsiyamiz alohida qatorda bajarilsa, prefiks va postfiks shakllari o'rtasida farq yo'q:

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

Kodni ishlamasdan, ekranga nima chiqishini aniqlang:

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

Kodni ishlamasdan, ekranga nima chiqishini aniqlang:

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

Kodni ishlamasdan, ekranga nima chiqishini aniqlang:

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

Kodni ishlamasdan, ekranga nima chiqishini aniqlang:

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

Kodni ishlamasdan, ekranga nima chiqishini aniqlang:

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

Kodni ishlamasdan, ekranga nima chiqishini aniqlang:

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

Kodni ishlamasdan, ekranga nima chiqishini aniqlang:

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

Kodni ishlamasdan, ekranga nima chiqishini aniqlang:

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

Kodni ishlamasdan, ekranga nima chiqishini aniqlang:

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