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
$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
$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
$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
$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
$num = 0;
++$num;
$num++;
echo $num; // 2 ni chiqaradi
?>
Kodni ishlamasdan, ekranga nima chiqishini aniqlang:
<?php
$num = 3;
echo ++$num;
?>
Kodni ishlamasdan, ekranga nima chiqishini aniqlang:
<?php
$num = 3;
echo $num++;
?>
Kodni ishlamasdan, ekranga nima chiqishini aniqlang:
<?php
$num = 3;
echo --$num;
?>
Kodni ishlamasdan, ekranga nima chiqishini aniqlang:
<?php
$num = 3;
echo $num--;
?>
Kodni ishlamasdan, ekranga nima chiqishini aniqlang:
<?php
$num1 = 3;
$num2 = ++$num1;
echo $num1;
echo $num2;
?>
Kodni ishlamasdan, ekranga nima chiqishini aniqlang:
<?php
$num1 = 3;
$num2 = $num1++;
echo $num1;
echo $num2;
?>
Kodni ishlamasdan, ekranga nima chiqishini aniqlang:
<?php
$num1 = 3;
$num2 = --$num1;
echo $num1;
echo $num2;
?>
Kodni ishlamasdan, ekranga nima chiqishini aniqlang:
<?php
$num1 = 3;
$num2 = $num1--;
echo $num1;
echo $num2;
?>
Kodni ishlamasdan, ekranga nima chiqishini aniqlang:
<?php
$num1 = 3;
$num1++;
$num2 = $num1--;
echo $num1++;
echo --$num2;
?>