Prefixový a postfixový typ v PHP
Operace inkrementace a dekrementace
lze zapisovat dvěma způsoby. V postfixovém
tvaru se operace zapisuje za název proměnné,
takto: $a++, a v prefixovém
tvaru - před název proměnné, takto:
++$a. Podívejme se na příkladech,
v čem je rozdíl mezi dvěma způsoby.
V následujícím příkladu první echo vypíše
0, protože nejprve proběhne výpis
na obrazovku, a teprve potom se proměnná zvýší:
<?php
$num = 0;
echo $num++; // vypíše 0, protože proměnná se zvýší až po echo
echo $num; // vypíše 1 - proměnná se změnila
?>
A nyní se proměnná nejprve zvýší, a teprve potom proběhne výpis na obrazovku:
<?php
$num = 0;
echo ++$num; // vypíše 1 - proměnná se zvýšila okamžitě
?>
Toto chování platí nejen pro výpis na obrazovku, ale i pro přiřazení:
<?php
$num1 = 0;
$num2 = $num1++; // do proměnné $num2 se zapíše 0
echo $num2; // vypíše 0
echo $num1; // vypíše 1 - proměnná $num1 se změnila po zápisu do $num2
?>
A nyní změníme postfixový tvar na prefixový:
<?php
$num1 = 0;
$num2 = ++$num1; // do proměnné $num2 se zapíše 1
echo $num2; // vypíše 1
?>
Pokud se naše operace provádí na samostatném řádku, pak není rozdílu mezi prefixovým a postfixovým tvarem:
<?php
$num = 0;
++$num;
$num++;
echo $num; // vypíše 2
?>
Bez spuštění kodu určete, co se vypíše na obrazovku:
<?php
$num = 3;
echo ++$num;
?>
Bez spuštění kodu určete, co se vypíše na obrazovku:
<?php
$num = 3;
echo $num++;
?>
Bez spuštění kodu určete, co se vypíše na obrazovku:
<?php
$num = 3;
echo --$num;
?>
Bez spuštění kodu určete, co se vypíše na obrazovku:
<?php
$num = 3;
echo $num--;
?>
Bez spuštění kodu určete, co se vypíše na obrazovku:
<?php
$num1 = 3;
$num2 = ++$num1;
echo $num1;
echo $num2;
?>
Bez spuštění kodu určete, co se vypíše na obrazovku:
<?php
$num1 = 3;
$num2 = $num1++;
echo $num1;
echo $num2;
?>
Bez spuštění kodu určete, co se vypíše na obrazovku:
<?php
$num1 = 3;
$num2 = --$num1;
echo $num1;
echo $num2;
?>
Bez spuštění kodu určete, co se vypíše na obrazovku:
<?php
$num1 = 3;
$num2 = $num1--;
echo $num1;
echo $num2;
?>
Bez spuštění kodu určete, co se vypíše na obrazovku:
<?php
$num1 = 3;
$num1++;
$num2 = $num1--;
echo $num1++;
echo --$num2;
?>