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

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

Ответ

Разница заключается в порядке выполнения операций: когда возвращается значение переменной и когда происходит её увеличение.

  • Префиксный инкремент (++$i) сначала увеличивает значение переменной, а затем возвращает новое значение.
  • Постфиксный инкремент ($i++) сначала возвращает текущее значение переменной, и только потом увеличивает его.

Пример на PHP:

$a = 5;
$b = ++$a; // Сначала $a становится 6, затем это значение присваивается $b
// Результат: $a = 6, $b = 6

$x = 5;
$y = $x++; // Сначала значение $x (5) присваивается $y, затем $x увеличивается до 6
// Результат: $x = 6, $y = 5

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