В чем разница между префиксным и постфиксным инкрементом и декрементом в PHP?

«В чем разница между префиксным и постфиксным инкрементом и декрементом в PHP?» — вопрос из категории PHP Core, который задают на 24% собеседований PHP Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Принцип одинаков для операций инкремента (++) и декремента (--): разница в моменте возврата значения.

  • Префиксная форма (++$i, --$i): изменить -> вернуть. Сначала значение переменной изменяется (увеличивается или уменьшается на 1), затем возвращается новое значение.
  • Постфиксная форма ($i++, $i--): вернуть -> изменить. Сначала возвращается текущее значение переменной, и только потом оно изменяется.

Пример, демонстрирующий разницу для обеих операций:

$value = 5;
echo ++$value; // Вывод: 6. Значение стало 6, затем выведено.
echo $value--; // Вывод: 6. Выведено текущее значение (6), затем оно уменьшилось до 5.
echo $value;   // Вывод: 5. Проверка финального состояния.

Ключевой момент: В изолированных операциях (например, $i++; на отдельной строке) форма не имеет значения для итогового значения переменной, но влияет на результат выражения, частью которого является эта операция.