Prefixový a postfixový typ v PHP
Operácie inkrementácie a dekrementácie sa v skutočnosti
dajú zapísať dvoma spôsobmi. V postfixovom
tvare sa operácia zapíše za názov premennej,
takto: $a++, a v prefixovom
tvare - pred názov premennej, takto:
++$a. Pozrime sa na príkladoch,
v čom je rozdiel medzi týmito dvoma spôsobmi.
V nasledujúcom príklade prvý echo vypíše
0, pretože najprv prebehne výstup
na obrazovku a až potom sa premenná zvýši:
<?php
$num = 0;
echo $num++; // vypíše 0, pretože premenná sa zvýši až po echo
echo $num; // vypíše 1 - premenná sa zmenila
?>
A teraz sa premenná najprv zvýši a až potom bude výstup na obrazovku:
<?php
$num = 0;
echo ++$num; // vypíše 1 - premenná sa zvýšila okamžite
?>
Takéto správanie platí nielen pre výstup na obrazovku, ale aj pre priradenie:
<?php
$num1 = 0;
$num2 = $num1++; // do premennej $num2 sa zapíše 0
echo $num2; // vypíše 0
echo $num1; // vypíše 1 - premenná $num1 sa zmenila po zápise do $num2
?>
A teraz zmeňme postfixový tvar na prefixový:
<?php
$num1 = 0;
$num2 = ++$num1; // do premennej $num2 sa zapíše 1
echo $num2; // vypíše 1
?>
Ak sa naša operácia vykoná na samostatnom riadku, nie je medzi prefixovým a postfixovým tvarom žiadny rozdiel:
<?php
$num = 0;
++$num;
$num++;
echo $num; // vypíše 2
?>
Bez spustenia kódu určite, čo sa vypíše na obrazovku:
<?php
$num = 3;
echo ++$num;
?>
Bez spustenia kódu určite, čo sa vypíše na obrazovku:
<?php
$num = 3;
echo $num++;
?>
Bez spustenia kódu určite, čo sa vypíše na obrazovku:
<?php
$num = 3;
echo --$num;
?>
Bez spustenia kódu určite, čo sa vypíše na obrazovku:
<?php
$num = 3;
echo $num--;
?>
Bez spustenia kódu určite, čo sa vypíše na obrazovku:
<?php
$num1 = 3;
$num2 = ++$num1;
echo $num1;
echo $num2;
?>
Bez spustenia kódu určite, čo sa vypíše na obrazovku:
<?php
$num1 = 3;
$num2 = $num1++;
echo $num1;
echo $num2;
?>
Bez spustenia kódu určite, čo sa vypíše na obrazovku:
<?php
$num1 = 3;
$num2 = --$num1;
echo $num1;
echo $num2;
?>
Bez spustenia kódu určite, čo sa vypíše na obrazovku:
<?php
$num1 = 3;
$num2 = $num1--;
echo $num1;
echo $num2;
?>
Bez spustenia kódu určite, čo sa vypíše na obrazovku:
<?php
$num1 = 3;
$num1++;
$num2 = $num1--;
echo $num1++;
echo --$num2;
?>