Страницы

четверг, 9 февраля 2012 г.

PHP. Инкремент и декремент

Увеличиваем и уменьшаем переменные. Как это делается с помощью декремента и инкремента.

Решил пойти по праведному пути, направление на который мне задал мой товарищ, и ознакомить вас, мои уважаемые читатели, с такими понятиями как инкремент и декремент. Что же это такое? По словам подружки Википедии инкремент это следующий базовый элемент. Как я понимаю, следующий за данным элемент, находящийся в сием массиве. В частном случае для числовых значений это увеличение на 1,  но в общем трактате не обязательно само увеличение, а переход к следующему базовому элементу. Я не буду рассматривать инкремент и декремент в общей трактовке, а хочу описать работу данных конструкций в php. Инкремент (++) - увеличение на 1. Рассмотрим пример:
<?
$a=2;
$a++;
echo "Мы увеличили переменную на 1 и получили: $a"; 
?>
Как мы тут работали: изначально переменная $a равнялась 2. Командой  $a++ мы увеличили значение нашей переменной на 1, т.е. к первоначальному хранившемуся значению 2 прибавилась единица и в итоге в значении переменной $a оказалось значение 3. Соответственно при выводе нашего сообщения с помощью оператора echo получим  на экране такую картину:
Мы увеличили переменную на 1 и получили: 3
Также работает и принцип операции декремента (--):
<?
$b=2;
$b--;
echo "Мы уменьшили переменную на 1 и получили: $b"; 
?>
Как вы, наверное, догадались картина получится следующая:
Мы уменьшили переменную на 1 и получили: 1
Эти оба операнда очень часто используется на практике, поэтому не стоит забывать о использовании данного удобства. Правда эквивалент этим конструкциям имеет место тоже, но он длиннее и непривычнее в использовании:
Эквивалентны:
1) $a++;
   $a = $a + 1;
2) $b--;
   $b = $b - 1;
Есть другой аспект использования декремента и инкремента. Знаки ++ и -- могут использоваться как до переменной, так и после. Постараюсь объяснить в чем же отличие этого. Возьмем пример:
<?
$a=7;
$b=7;
echo (++$a)."<br>";
echo ($b++);
?>
И угадайте, что теперь выведется у нас на сайте:
8
7
Да, именно так. Итог получился таковым в результате использования в разных местах самих символов ++. Давайте смотреть: в первом случае переменная $a получилась равна 8, о чем говорит использование инкремента, точнее знаков ++, до самой переменной. Соответственно во втором случае переменная $b вывелась со значением 7, так как символы ++ мы поставили уже после. Но стоит понять, что при следющем выводе переменной $b уже выведется 8, а не 7, ведь в памяти уже хранится увеличенное значение $b. Такой же принцип работает и с декрементом, только там используются символы --.

Комментариев нет:

Отправить комментарий