Tipo prefijo y postfijo en PHP
En realidad, las operaciones de incremento y decremento
se pueden escribir de dos maneras. En forma postfija
la operación se escribe después del nombre de la variable,
así: $a++, y en forma prefija
- antes del nombre de la variable, así:
++$a. Veamos con ejemplos
cuál es la diferencia entre las dos formas.
En el siguiente ejemplo el primer echo mostrará
0, ya que primero se realizará la salida
a la pantalla, y solo después la variable aumentará:
<?php
$num = 0;
echo $num++; // mostrará 0, porque la variable aumentará solo después de echo
echo $num; // mostrará 1 - la variable cambió
?>
Y ahora la variable aumentará primero, y solo entonces se realizará la salida a la pantalla:
<?php
$num = 0;
echo ++$num; // mostrará 1 - la variable aumentó inmediatamente
?>
Este comportamiento es válido no solo para la salida a pantalla, sino también para la asignación:
<?php
$num1 = 0;
$num2 = $num1++; // en la variable $num2 se guardará 0
echo $num2; // mostrará 0
echo $num1; // mostrará 1 - la variable $num1 cambió después de guardar en $num2
?>
Y ahora cambiemos la forma postfija por la prefija:
<?php
$num1 = 0;
$num2 = ++$num1; // en la variable $num2 se guardará 1
echo $num2; // mostrará 1
?>
Si nuestra operación se realiza en una línea separada, entonces no hay diferencia entre las formas prefija y postfija:
<?php
$num = 0;
++$num;
$num++;
echo $num; // mostrará 2
?>
Sin ejecutar el código, determine qué se mostrará en la pantalla:
<?php
$num = 3;
echo ++$num;
?>
Sin ejecutar el código, determine qué se mostrará en la pantalla:
<?php
$num = 3;
echo $num++;
?>
Sin ejecutar el código, determine qué se mostrará en la pantalla:
<?php
$num = 3;
echo --$num;
?>
Sin ejecutar el código, determine qué se mostrará en la pantalla:
<?php
$num = 3;
echo $num--;
?>
Sin ejecutar el código, determine qué se mostrará en la pantalla:
<?php
$num1 = 3;
$num2 = ++$num1;
echo $num1;
echo $num2;
?>
Sin ejecutar el código, determine qué se mostrará en la pantalla:
<?php
$num1 = 3;
$num2 = $num1++;
echo $num1;
echo $num2;
?>
Sin ejecutar el código, determine qué se mostrará en la pantalla:
<?php
$num1 = 3;
$num2 = --$num1;
echo $num1;
echo $num2;
?>
Sin ejecutar el código, determine qué se mostrará en la pantalla:
<?php
$num1 = 3;
$num2 = $num1--;
echo $num1;
echo $num2;
?>
Sin ejecutar el código, determine qué se mostrará en la pantalla:
<?php
$num1 = 3;
$num1++;
$num2 = $num1--;
echo $num1++;
echo --$num2;
?>