Forum und email

Operadores de Incremento/Decremento

O PHP suporta operadores de pré e pós-incremento e decremento no estilo C.

Nota: Os operadores incremento/decremento não afetam valores booleanos. Decrementando valores NULL não há efeito também, mas incrementando resulta em 1.

Operadores de Incremento/Decremento
Exemplo Nome Efeito
++$a Pré-incremento Incrementa $a em um, e então retorna $a.
$a++ Pós-incremento Retorna $a, e então incrementa $a em um.
--$a Pré-decremento Decrementa $a em um, e então retorna $a.
$a-- Pós-decremento Retorna $a, e então decrementa $a em um.

Aqui está um script de exemplo simples:

<?php
echo "<h3>Pós-incremento</h3>";
$a 5;
echo 
"Deve ser 5: " $a++ . "<br />\n";
echo 
"Deve ser 6: " $a "<br />\n";

echo 
"<h3>Pré-incremento</h3>";
$a 5;
echo 
"Deve ser 6: " . ++$a "<br />\n";
echo 
"Deve ser 6: " $a "<br />\n";

echo 
"<h3>Pós-decremento</h3>";
$a 5;
echo 
"Deve ser 5: " $a-- . "<br />\n";
echo 
"Deve ser 4: " $a "<br />\n";

echo 
"<h3>Pré-decremento</h3>";
$a 5;
echo 
"Deve ser 4: " . --$a "<br />\n";
echo 
"Deve ser 4: " $a "<br />\n";
?>

O PHP segue a convenção Perl quando tratando operações aritmétricas em variavéis caracter em vez da convenção C. Por exemplo, em Perl 'Z'+1 se torna 'AA', enquanto que no C 'Z'+1 se torna '[' ( ord('Z') == 90, ord('[') == 91 ). Note que variáveis caracter podem ser incrementadas mas não decrementadas e somente caracteres plain ASCII (a-z e A-Z) são suportados.

Example#1 Operações aritmétricas em variáveis caractere

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

O exemplo acima irá imprimir:

X
Y
Z
AA
AB
AC

Incrementar ou decrementar booleanos não há efeito.