PHP :: Операторы инкремента и декремента
В PHP, как и в JavaScript, поддерживаются префиксные и постфиксные операторы инкремента и декремента.
Оператор инкремента/декремента служит для увеличения/уменьшения значения своего операнда на единицу и обозначается знаками ++/--. Если оператор инкремента/декремента расположен перед операндом, то он называется префиксным оператором инкремента/декремента. В этом случае оператор инкремента/декремента сперва увеличивает/уменьшает значение операнда на единицу, и только затем измененное на единицу значение операнда возвращается для дальнейшего использования.
Если же оператор инкремента/декремента расположен после операнда, то он называется постфиксным оператором инкремента/декремента. В таком случае оператор инкремента/декремента сперва возвращает неизмененное (начальное) значение операнда, и только затем увеличивает/уменьшает значение операнда на единицу. Все операторы инкремента и декремента перечислены в таблице №1.
Пример | Название | Результат |
---|---|---|
++$a | Префиксный инкремент | Увеличивает $a на единицу, затем возвращает значение $a. |
$a++ | Постфиксный инкремент | Возвращает значение $a, затем увеличивает $a на единицу. |
--$a | Префиксный декремент | Уменьшает $a на единицу, затем возвращает значение $a. |
$a-- | Постфиксный декремент | Возвращает значение $a, затем уменьшает $a на единицу. |
Таблица №1. Операторы инкремента и декремента
Добавим, что операторы инкремента и декремента наиболее часто используются с переменными внутри циклов, особенно для увеличения/уменьшения показаний счетчиков цикла (подробнее об этом мы поговорим в соответствующем разделе, посвященному управляющим конструкциям). Пока же посмотрите несколько более простых примеров использования операторов инкремента и декремента (см. пример №2).
<?php //Присвоили число 5 $a=5; //Выведет 6, т.к. префиксный оператор инкремента увеличит значение //переменной на 1, а затем вернет его для вывода; теперь $a==6 echo ++$a.'<br>'; //Выведет 6, т.к. постфиксный оператор инкремента вернет для вывода //значение переменной, т.е. 6, а только потом увеличит его на 1 echo $a++.'<br>'; //Выведет 7, т.к. после предыдущего использования $a==7 echo $a.'<br>'; //Выведет 6, т.к. префиксный оператор декремента уменьшит //переменной на 1, а затем вернет его для вывода; теперь $a==6 echo --$a.'<br>'; //Выведет 6, т.к. постфиксный оператор декремента вернет сперва для //вывода значение переменной, т.е. 6, а только потом увеличит его на 1 echo $a--.'<br>'; //Выведет 5, т.к. после предыдущего использования $a==5 echo $a.'<br>'; ?>
Пример №2. Использование операторов инкремента и декремента
Также нужно иметь в виду, что:
- операторы инкремента и декремента влияют только на строки и числа;
- --NULL не даст никакого эффекта, однако ++NULL вернет число 1;
- инкрементирование или декрементирование булевых переменных, массивов, объектов и ресурсов не даст никакого результата.
Быстрый переход к другим страницам
- Арифметические операторы в PHP
- Операторы инкремента и декремента в PHP
- Операторы присваивания в PHP
- Вернуться к оглавлению учебника