Type préfixe et postfixe en PHP
En fait, les opérations d'incrémentation et de décrémentation
peuvent être écrites de deux manières. Sous la forme
postfixe, l'opération s'écrit après le nom de la variable,
comme ceci : $a++, et sous la forme préfixe
- avant le nom de la variable, comme ceci :
++$a. Regardons à travers des exemples
la différence entre les deux méthodes.
Dans l'exemple suivant, le premier echo affichera
0, car l'affichage à l'écran se produira d'abord,
et ensuite seulement la variable sera augmentée :
<?php
$num = 0;
echo $num++; // affichera 0, car la variable n'augmentera qu'après echo
echo $num; // affichera 1 - la variable a changé
?>
Et maintenant, la variable augmentera d'abord, et ensuite seulement l'affichage à l'écran aura lieu :
<?php
$num = 0;
echo ++$num; // affichera 1 - la variable a augmenté immédiatement
?>
Ce comportement est valable non seulement pour l'affichage à l'écran, mais aussi pour l'affectation :
<?php
$num1 = 0;
$num2 = $num1++; // la variable $num2 recevra la valeur 0
echo $num2; // affichera 0
echo $num1; // affichera 1 - la variable $num1 a changé après l'affectation à $num2
?>
Et maintenant, changeons la forme postfixe en forme préfixe :
<?php
$num1 = 0;
$num2 = ++$num1; // la variable $num2 recevra la valeur 1
echo $num2; // affichera 1
?>
Si notre opération est effectuée sur une ligne distincte, il n'y a pas de différence entre les formes préfixe et postfixe :
<?php
$num = 0;
++$num;
$num++;
echo $num; // affichera 2
?>
Sans exécuter le code, déterminez ce qui sera affiché à l'écran :
<?php
$num = 3;
echo ++$num;
?>
Sans exécuter le code, déterminez ce qui sera affiché à l'écran :
<?php
$num = 3;
echo $num++;
?>
Sans exécuter le code, déterminez ce qui sera affiché à l'écran :
<?php
$num = 3;
echo --$num;
?>
Sans exécuter le code, déterminez ce qui sera affiché à l'écran :
<?php
$num = 3;
echo $num--;
?>
Sans exécuter le code, déterminez ce qui sera affiché à l'écran :
<?php
$num1 = 3;
$num2 = ++$num1;
echo $num1;
echo $num2;
?>
Sans exécuter le code, déterminez ce qui sera affiché à l'écran :
<?php
$num1 = 3;
$num2 = $num1++;
echo $num1;
echo $num2;
?>
Sans exécuter le code, déterminez ce qui sera affiché à l'écran :
<?php
$num1 = 3;
$num2 = --$num1;
echo $num1;
echo $num2;
?>
Sans exécuter le code, déterminez ce qui sera affiché à l'écran :
<?php
$num1 = 3;
$num2 = $num1--;
echo $num1;
echo $num2;
?>
Sans exécuter le code, déterminez ce qui sera affiché à l'écran :
<?php
$num1 = 3;
$num1++;
$num2 = $num1--;
echo $num1++;
echo --$num2;
?>