Tipo prefisso e postfisso in PHP
In realtà, le operazioni di incremento e decremento
possono essere scritte in due modi. Nella forma
postfissa
l'operazione viene scritta dopo il nome della variabile,
così: $a++, mentre nella forma
prefissa
- prima del nome della variabile, così:
++$a. Vediamo con degli esempi
qual è la differenza tra i due metodi.
Nel seguente esempio la prima istruzione echo visualizzerà
0, perché prima avverrà l'output
sullo schermo, e solo dopo la variabile verrà incrementata:
<?php
$num = 0;
echo $num++; // visualizzerà 0, perché la variabile aumenta solo dopo echo
echo $num; // visualizzerà 1 - la variabile è cambiata
?>
E ora la variabile prima aumenta, e solo dopo avverrà l'output sullo schermo:
<?php
$num = 0;
echo ++$num; // visualizzerà 1 - la variabile è aumentata immediatamente
?>
Questo comportamento è valido non solo per l'output sullo schermo, ma anche per l'assegnazione:
<?php
$num1 = 0;
$num2 = $num1++; // nella variabile $num2 verrà scritto 0
echo $num2; // visualizzerà 0
echo $num1; // visualizzerà 1 - la variabile $num1 è cambiata dopo l'assegnazione a $num2
?>
E ora cambiamo la forma postfissa con quella prefissa:
<?php
$num1 = 0;
$num2 = ++$num1; // nella variabile $num2 verrà scritto 1
echo $num2; // visualizzerà 1
?>
Se la nostra operazione viene eseguita su una riga separata, non c'è differenza tra la forma prefissa e postfissa:
<?php
$num = 0;
++$num;
$num++;
echo $num; // visualizzerà 2
?>
Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:
<?php
$num = 3;
echo ++$num;
?>
Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:
<?php
$num = 3;
echo $num++;
?>
Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:
<?php
$num = 3;
echo --$num;
?>
Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:
<?php
$num = 3;
echo $num--;
?>
Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:
<?php
$num1 = 3;
$num2 = ++$num1;
echo $num1;
echo $num2;
?>
Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:
<?php
$num1 = 3;
$num2 = $num1++;
echo $num1;
echo $num2;
?>
Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:
<?php
$num1 = 3;
$num2 = --$num1;
echo $num1;
echo $num2;
?>
Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:
<?php
$num1 = 3;
$num2 = $num1--;
echo $num1;
echo $num2;
?>
Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:
<?php
$num1 = 3;
$num1++;
$num2 = $num1--;
echo $num1++;
echo --$num2;
?>