Tipul prefix și postfix în PHP
De fapt, operațiile de incrementare și decrementare
pot fi scrise în două moduri. În forma postfix
operația se scrie după numele variabilei,
astfel: $a++, iar în forma prefix
- înaintea numelui variabilei, astfel:
++$a. Să vedem în exemple,
care este diferența dintre cele două moduri.
În următorul exemplu, primul echo va afișa
0, deoarece mai întâi se va executa afișarea
pe ecran, și abia apoi variabila va crește:
<?php
$num = 0;
echo $num++; // va afișa 0, deoarece variabila crește doar după echo
echo $num; // va afișa 1 - variabila s-a schimbat
?>
Și acum variabila va crește mai întâi, iar abia apoi va avea loc afișarea pe ecran:
<?php
$num = 0;
echo ++$num; // va afișa 1 - variabila a crescut imediat
?>
Acest comportament este valabil nu doar pentru afișarea pe ecran, ci și pentru atribuire:
<?php
$num1 = 0;
$num2 = $num1++; // în variabila $num2 se va scrie 0
echo $num2; // va afișa 0
echo $num1; // va afișa 1 - variabila $num1 s-a schimbat după scrierea în $num2
?>
Și acum schimbăm forma postfix în prefix:
<?php
$num1 = 0;
$num2 = ++$num1; // în variabila $num2 se va scrie 1
echo $num2; // va afișa 1
?>
Dacă operația noastră se execută pe un rând separat, atunci nu există diferență între formele prefix și postfix:
<?php
$num = 0;
++$num;
$num++;
echo $num; // va afișa 2
?>
Fără a rula codul, determinați ce se va afișa pe ecran:
<?php
$num = 3;
echo ++$num;
?>
Fără a rula codul, determinați ce se va afișa pe ecran:
<?php
$num = 3;
echo $num++;
?>
Fără a rula codul, determinați ce se va afișa pe ecran:
<?php
$num = 3;
echo --$num;
?>
Fără a rula codul, determinați ce se va afișa pe ecran:
<?php
$num = 3;
echo $num--;
?>
Fără a rula codul, determinați ce se va afișa pe ecran:
<?php
$num1 = 3;
$num2 = ++$num1;
echo $num1;
echo $num2;
?>
Fără a rula codul, determinați ce se va afișa pe ecran:
<?php
$num1 = 3;
$num2 = $num1++;
echo $num1;
echo $num2;
?>
Fără a rula codul, determinați ce se va afișa pe ecran:
<?php
$num1 = 3;
$num2 = --$num1;
echo $num1;
echo $num2;
?>
Fără a rula codul, determinați ce se va afișa pe ecran:
<?php
$num1 = 3;
$num2 = $num1--;
echo $num1;
echo $num2;
?>
Fără a rula codul, determinați ce se va afișa pe ecran:
<?php
$num1 = 3;
$num1++;
$num2 = $num1--;
echo $num1++;
echo --$num2;
?>