Opérateurs d'incrémentation et décrémentation

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

Note: Les opérateurs d'incrémentation/décrémentation n'affectent pas les valeurs booléennes. La décrémentation des valeurs NULL n'a également aucun effet, mais leur incrémentation donnera comme résultat 1 .

Tableau 15.6. Opérateurs d'incrémentation et décrémentation

Exemple Nom Résultat
++$a Pre-incrémente Incrémente $a de 1, puis retourne $a .
$a++ Post-incrémente Retourne $a , puis l'incrémente de 1.
--$a Pré-décrémente Décrémente $a de 1, puis retourne $a .
$a-- Post-décrémente Retourne $a , puis décrémente $a de 1.

Voici un exemple simple

Exemple 15.10. Exemples d'incrémentations et décrémentations

<?php
echo  '<h3>Post-incrémentation</h3>' ;
$a  5 ;
echo 
"Devrait valoir  5: "  $a ++ .  "<br />\n" ;
echo 
"Devrait valoir  6: "  $a  "<br />\n" ;
echo 
'<h3>Pre-incrémentation</h3>' ;
$a  5 ;
echo 
"Devrait valoir  6: "  . ++ $a  "<br />\n" ;
echo 
"Devrait valoir  6: "  $a  "<br />\n" ;
echo 
'<h3>Post-décrémentation</h3>' ;
$a  5 ;
echo 
"Devrait valoir  5: "  $a -- .  "<br />\n" ;
echo 
"Devrait valoir  4: "  $a  "<br />\n" ;
echo 
'<h3>Pre-décré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 et même seuls les caractères ASCII (a-z et A-Z) sont supportés.

Exemple 15.11. Opérations arithmétiques sur un caractère

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

L'exemple ci-dessus va afficher :


X
Y
Z
AA
AB
AC

     

L'incrémentation ou la décrémentation d'un booléen n'a aucun effet.