viernes, 26 de mayo de 2017

Operadores de incremento /decremento


Operadores de incremento/decremento ¶

PHP soporta operadores estilo C de pre- y post-incremento y decremento.
NotaLos operadores de incremento/decremento solamente afectan a números y strings. Los arrays, objects y resources no se ven afectados. Decrementar valores NULL tampoco tiene efecto, pero incrementarlos entonces resulta en 1.
Operadores de incremento/decremento
EjemploNombreEfecto
++$aPre-incrementoIncrementa $a en uno, y luego retorna $a.
$a++Post-incrementoRetorna $a, y luego incrementa $a en uno.
--$aPre-decrementoDecrementa $a en uno, luego retorna $a.
$a--Post-decrementoRetorna $a, luego decrementa $a en uno.
Aquí hay un script simple de ejemplo:
<?phpecho "<h3>Postincremento</h3>";$a 5;
echo 
"Debe ser 5: " $a++ . "<br />\n";
echo 
"Debe ser 6: " $a "<br />\n";

echo 
"<h3>Preincremento</h3>";$a 5;
echo 
"Debe ser 6: " . ++$a "<br />\n";
echo 
"Debe ser 6: " $a "<br />\n";

echo 
"<h3>Postdecremento</h3>";$a 5;
echo 
"Debe ser 5: " $a-- . "<br />\n";
echo 
"Debe ser 4: " $a "<br />\n";

echo 
"<h3>Predecremento</h3>";$a 5;
echo 
"Debe ser 4: " . --$a "<br />\n";
echo 
"Debe ser 4: " $a "<br />\n";?>
PHP sigue la convención de Perl cuando trabaja con operaciones aritméticas sobre variables de caracteres y no la de C. Por ejemplo, en PHP y Perl $a = 'Z'; $a++; convierte $a en 'AA', mientras que en C a = 'Z'; a++; convierte a en '['(el valor ASCII de 'Z' es 90, el valor ASCII de '[' es 91). Nótese que las variables de caracteres pueden ser incrementadas pero no decrementadas y aun así sólo caracteres y dígitos de ASCII puro (a-z, A-Z y 0-9) están soportados. Incrementar o decrementar otras variables de caracteres no tiene efecto, el string original no se modifica.
Ejemplo #1 Operaciones aritméticas sobre variables de caracteres
<?phpecho '== Letras ==' PHP_EOL;$s 'W';
for (
$n=0$n<6$n++) {
    echo ++
$s PHP_EOL;
}
// Los caracteres de dígitos tienen un comportamiento diferenteecho '== Dígitos ==' PHP_EOL;$d 'A8';
for (
$n=0$n<6$n++) {
    echo ++
$d PHP_EOL;
}
$d 'A08';
for (
$n=0$n<6$n++) {
    echo ++
$d PHP_EOL;
}
?>
El resultado del ejemplo sería:
== Letras ==
X
Y
Z
AA
AB
AC
== Dígitos ==
A9
B0
B1
B2
B3
B4
A09
A10
A11
A12
A13
A14


 http://php.net/manual/es/language.operators.increment.php

No hay comentarios:

Publicar un comentario