Opérateurs d'incrémentation/Décrémentation

PHP supporte les opérateurs de pré et post incrémentation et décrémentation, comme en C.

Tableau 10-5. Opérateurs d'incrémentation/Décrémentation

ExempleNomRésultat
++$aPré-incrémenteIncrémente $a de 1, puis retourne $a.
$a++Post-incrémenteRetourne $a, puis l'incrémente de 1.
--$aPré-décrémenteDécrémente $a de 1, puis retourne $a.
$a--Post-décrémenteRetourne $a, puis décrémente $a de 1.

Voici un exemple simple

<?php
  
echo "<h3>Post-incr&eacute;mentation</h3>";
  
$a = 5;
  echo
"Devrait valoir  5: " . $a++ . "<br>\n";
  echo
"Devrait valoir  6: " . $a . "<br>\n";
  echo
"<h3>Pr&eacute;-incr&eacute;mentation</h3>";
  
$a = 5;
  echo
"Devrait valoir  6: " . ++$a . "<br>\n";
  echo
"Devrait valoir  6: " . $a . "<br>\n";
  echo
"<h3>Post-d&eacute;cr&eacute;mentation</h3>";
  
$a = 5;
  echo
"Devrait valoir  5: " . $a-- . "<br>\n";
  echo
"Devrait valoir  4: " . $a . "<br>\n";
  echo
"<h3>Pr&eacute;-d&eacute;cr&eacute;mentation</h3>";
  
$a = 5;
  echo
"Devrait valoir  4: " . --$a . "<br>\n";
  echo
"Devrait valoir  4: " . $a . "<br>\n";
?>

PHP suit les conventions de Perl pour la gestion des opérateurs arithmétiques, et non pas celle du C. Par exemple, en Perl 'Z'+1 retourne 'AA', alors qu'en C, 'Z'+1 retourne '[' ( ord('Z') == 90, donc ord('[') == 91 ). Notez que les variables de caractères peuvent être incrémentées, mais pas décrémentées.

Exemple 10-4. Opérations arithmétiques sur un caractère

<?php
$i
= 'W';
for(
$n=0; $n<6; $n++)
  echo ++
$i . "\n";

/*
  Produit un r&eacute;sultat identique &agrave; celui-ci :
  
X
Y
Z
AA
AB
AC

*/
?>