Typ prefiksowy i postfiksowy w PHP
W rzeczywistości operacje inkrementacji i dekrementacji
można zapisać na dwa sposoby. W formie postfiksowej
operacja zapisywana jest po nazwie zmiennej,
w ten sposób: $a++, a w formie prefiksowej
- przed nazwą zmiennej, w ten sposób:
++$a. Spójrzmy na przykładach,
jaka jest różnica między tymi dwoma sposobami.
W następnym przykładzie pierwsze echo wyświetli
0, ponieważ najpierw nastąpi wypisanie
na ekran, a dopiero potem zmienna zwiększy się:
<?php
$num = 0;
echo $num++; // wyświetli 0, ponieważ zmienna zwiększy się dopiero po echo
echo $num; // wyświetli 1 - zmienna uległa zmianie
?>
A teraz zmienna najpierw zwiększy się, a dopiero potem nastąpi wypisanie na ekran:
<?php
$num = 0;
echo ++$num; // wyświetli 1 - zmienna zwiększyła się od razu
?>
Takie zachowanie dotyczy nie tylko wypisywania na ekran, ale także przypisania:
<?php
$num1 = 0;
$num2 = $num1++; // do zmiennej $num2 zostanie zapisane 0
echo $num2; // wyświetli 0
echo $num1; // wyświetli 1 - zmienna $num1 zmieniła się po zapisaniu do $num2
?>
A teraz zmieńmy formę postfiksową na prefiksową:
<?php
$num1 = 0;
$num2 = ++$num1; // do zmiennej $num2 zostanie zapisane 1
echo $num2; // wyświetli 1
?>
Jeśli nasza operacja wykonywana jest w osobnym wierszu, to nie ma różnicy między formą prefiksową a postfiksową:
<?php
$num = 0;
++$num;
$num++;
echo $num; // wyświetli 2
?>
Bez uruchamiania kodu określ, co zostanie wyświetlone na ekranie:
<?php
$num = 3;
echo ++$num;
?>
Bez uruchamiania kodu określ, co zostanie wyświetlone na ekranie:
<?php
$num = 3;
echo $num++;
?>
Bez uruchamiania kodu określ, co zostanie wyświetlone na ekranie:
<?php
$num = 3;
echo --$num;
?>
Bez uruchamiania kodu określ, co zostanie wyświetlone na ekranie:
<?php
$num = 3;
echo $num--;
?>
Bez uruchamiania kodu określ, co zostanie wyświetlone na ekranie:
<?php
$num1 = 3;
$num2 = ++$num1;
echo $num1;
echo $num2;
?>
Bez uruchamiania kodu określ, co zostanie wyświetlone na ekranie:
<?php
$num1 = 3;
$num2 = $num1++;
echo $num1;
echo $num2;
?>
Bez uruchamiania kodu określ, co zostanie wyświetlone na ekranie:
<?php
$num1 = 3;
$num2 = --$num1;
echo $num1;
echo $num2;
?>
Bez uruchamiania kodu określ, co zostanie wyświetlone na ekranie:
<?php
$num1 = 3;
$num2 = $num1--;
echo $num1;
echo $num2;
?>
Bez uruchamiania kodu określ, co zostanie wyświetlone na ekranie:
<?php
$num1 = 3;
$num1++;
$num2 = $num1--;
echo $num1++;
echo --$num2;
?>