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

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

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

++$х;
--$у;

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

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

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

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

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

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

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

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