Префиксен и постфиксен тип в PHP
Всъщност операциите инкрементиране и декрементиране
могат да се записват по два начина. В постфиксен
вид операцията се записва след името на променливата,
ето така: $a++, а в префиксен
вид - преди името на променливата, ето така:
++$a. Нека да разгледаме с примери,
в какво се различават двата начина.
В следващия пример първият echo ще изведе
0, тъй като първо ще се изпълни извеждането
на екрана, и едва след това променливата ще се увеличи:
<?php
$num = 0;
echo $num++; // ще изведе 0, тъй като променливата ще се увеличи едва след echo
echo $num; // ще изведе 1 - променливата се е променила
?>
А сега променливата първо ще се увеличи, а едва след това ще се извърши извеждането на екрана:
<?php
$num = 0;
echo ++$num; // ще изведе 1 - променливата се увеличи веднага
?>
Такова поведение е валидно не само за извеждане на екрана, но и за присвояване:
<?php
$num1 = 0;
$num2 = $num1++; // в променливата $num2 ще се запише 0
echo $num2; // ще изведе 0
echo $num1; // ще изведе 1 - променливата $num1 се промени след записването в $num2
?>
А сега нека сменим постфиксната форма с префиксна:
<?php
$num1 = 0;
$num2 = ++$num1; // в променливата $num2 ще се запише 1
echo $num2; // ще изведе 1
?>
Ако нашата операция се изпълнява на отделен ред, то няма разлика между префиксната и постфиксната форми:
<?php
$num = 0;
++$num;
$num++;
echo $num; // ще изведе 2
?>
Без да пускате кода, определете какво ще се изведе на екрана:
<?php
$num = 3;
echo ++$num;
?>
Без да пускате кода, определете какво ще се изведе на екрана:
<?php
$num = 3;
echo $num++;
?>
Без да пускате кода, определете какво ще се изведе на екрана:
<?php
$num = 3;
echo --$num;
?>
Без да пускате кода, определете какво ще се изведе на екрана:
<?php
$num = 3;
echo $num--;
?>
Без да пускате кода, определете какво ще се изведе на екрана:
<?php
$num1 = 3;
$num2 = ++$num1;
echo $num1;
echo $num2;
?>
Без да пускате кода, определете какво ще се изведе на екрана:
<?php
$num1 = 3;
$num2 = $num1++;
echo $num1;
echo $num2;
?>
Без да пускате кода, определете какво ще се изведе на екрана:
<?php
$num1 = 3;
$num2 = --$num1;
echo $num1;
echo $num2;
?>
Без да пускате кода, определете какво ще се изведе на екрана:
<?php
$num1 = 3;
$num2 = $num1--;
echo $num1;
echo $num2;
?>
Без да пускате кода, определете какво ще се изveде на екрана:
<?php
$num1 = 3;
$num1++;
$num2 = $num1--;
echo $num1++;
echo --$num2;
?>