PHP da prefiks va postfiks turi
Aslida, inkrement va dekrement operatsiyalari ikki xil usulda yozilishi mumkin. Postfiks shaklida operatsiya o'zgaruvchi nomidan keyin yoziladi, bu quyidagicha: $a++ va prefiks shaklida-o'zgaruvchining nomidan oldin, bunday : ++$a. Keling, ikkita usul o'rtasidagi farq nima ekanligini misollarda ko'rib chiqaylik.
Quyidagi misolda birinchi echo 0 ni chiqaradi, chunki avval ekranga chiqarish bajariladi va shundan keyingina o'zgaruvchi qiymati o'zgaradi:
<?php
$num = 0;
echo $num++; // 0 ni chiqaradi, chunki o'zgaruvchi faqat echo-dan keyin o'zgaradi
echo $num; // o'zgaruvchi o'zgartirildi 1 ni chiqaradi
?>
Endi o'zgaruvchi avval kattalashadi va shundan keyingina ekranga chiqariladi:
<?php
$num = 0;
echo ++$num; // 1 ni chiqaradi - o'zgaruvchi darhol o'zgardi
?>
Ushbu holat nafaqat ekranga chiqish, balki tayinlashda ham shunday bo'ladi:
<?php
$num1 = 0;
$num2 = $num1++; // $num2 o'zgaruvchisiga 0 yoziladi
echo $num2; // chiqaradi 0
echo $num1; // 1 chiqadi - $num1 o'zgaruvchisi $num2 ga yozilgandan keyin o'zgardi
?>
Edi postfiks shaklini prefiks shakliga o'zgartiramiz:
<?php
$num1 = 0;
$num2 = ++$num1; // $num2 o'zgaruvchisiga 1 yoziladi
echo $num2; // chiqaradi 1
?>
Agar bizning operatsiyamiz alohida satrda amalga oshirilsa, prefiks va postfiks shakllari o'rtasida farq yo'q:
<?php
$num = 0;
++$num;
$num++;
echo $num; // chiqaradi 2
?>
№1
Kodni ishga tushirmasdan, ekranda nima paydo bo'lishini aniqlang:
<?php
$num = 3;
echo ++$num;
?>
№2
Kodni ishga tushirmasdan, ekranda nima paydo bo'lishini aniqlang:
<?php
$num = 3;
echo $num++;
?>
№3
Kodni ishga tushirmasdan, ekranda nima paydo bo'lishini aniqlang:
<?php
$num = 3;
echo --$num;
?>
№4
Kodni ishga tushirmasdan, ekranda nima paydo bo'lishini aniqlang:
<?php
$num = 3;
echo $num--;
?>
№5
Kodni ishga tushirmasdan, ekranda nima paydo bo'lishini aniqlang:
<?php
$num1 = 3;
$num2 = ++$num1;
echo $num1;
echo $num2;
?>
№6
Kodni ishga tushirmasdan, ekranda nima paydo bo'lishini aniqlang:
<?php
$num1 = 3;
$num2 = $num1++;
echo $num1;
echo $num2;
?>
№7
Kodni ishga tushirmasdan, ekranda nima paydo bo'lishini aniqlang:
<?php
$num1 = 3;
$num2 = --$num1;
echo $num1;
echo $num2;
?>
№8
Kodni ishga tushirmasdan, ekranda nima paydo bo'lishini aniqlang:
<?php
$num1 = 3;
$num2 = $num1--;
echo $num1;
echo $num2;
?>
№9
Kodni ishga tushirmasdan, ekranda nima paydo bo'lishini aniqlang:
<?php
$num1 = 3;
$num1++;
$num2 = $num1--;
echo $num1++;
echo --$num2;
?>