Материал предоставлен https://it.rfei.ru

Увеличение и уменьшение значения переменной на единицу

Добавление или вычитание единицы является настолько часто встречающейся операцией, что РНР предоставляет для этого специальные операторы. Вместо операторов += и - = можно воспользоваться одним из следующих операторов:

++$х;
--$у;

В сочетании с проверкой (инструкцией if) можно воспользоваться следующим кодом:

if (++$х == 10) echo $х;

Этот код предписывает РНР сначала увеличить значение переменной $х на единицу, а затем проверить, не имеет ли она значение 10; если переменная имеет такое значение, его следует вывести на экран. Но также можно потребовать от РНР увеличить значение переменной на единицу (или, как в следующем примере, уменьшить на единицу) после того, как ее значение будет проверено:

if ($у -= 0) echo $у;

Это дает несколько иной результат. Предположим, что первоначальное значение переменной $у до выполнения оператора было равно нулю. Операция сравнения вернет результат true, но, после того как она будет проведена, значение переменной $у будет установлено в -1. Тогда что же отобразит инструкция echo: 0 или -1? Попробуйте догадаться, а потом, чтобы подтвердить свою догадку, испытайте работу инструкции в PHP-процессоре. Поскольку такая комбинация операторов может вас запутать, ее можно применять только в качестве обучающего примера, но ни в коем случае не рассматривать в качестве приемлемого стиля программирования.

Итак, когда именно увеличено или уменьшено на единицу значение переменной — до или после проверки, зависит от того, где помещен оператор инкремента или декремента — перед именем переменной или после него.

Кстати, правильный ответ на предыдущий вопрос таков: инструкция echo отобразит результат -1, потому что значение переменной $у было уменьшено на единицу сразу же после того, как к ней получила доступ инструкция if, и до того, как к ней получила доступ инструкция echo.

Присваивание значений переменнымОбъединение строк