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.