What's the difference between ++$i and $i++?

04/28/2020 07:30:02

What's the difference between ++$i and $i++ in PHP?

Verified Answer (90 Votes)

11/18/2009 18:38:36

++$i is pre-increment whilst $i++ post-increment.

  • pre-increment: increment variable i first and then de-reference.
  • post-increment: de-reference and then increment i

"Take advantage of the fact that PHP allows you to post-increment ($i++) and pre-increment (++$i). The meaning is the same as long as you are not writing anything like $j = $i++, however pre-incrementing is almost 10% faster, which means that you should switch from post- to pre-incrementing when you have the opportunity, especially in tight loops and especially if you're pedantic about micro-optimisations!" - TuxRadar

For further clarification, post-incrementation in PHP has been documented as storing a temporary variable which attributes to this 10% overhead vs. pre-incrementation.


Answer #2 (59 Votes)

11/18/2009 18:46:46

++$i increments $i, but evaluates to the value of $i+1 $i++ increments $i, but evaluates to the old value of $i.

Here's an example:

$i = 10;
$a = $i++;
// Now $a is 10, and $i is 11

$i = 10;
$a = ++$i;
// Now $a is 11, and $i is 11

There is sometimes a slight preformance cost for using $i++. See, when you do something like

$a = $i++;

You're really doing this:

$temporary_variable = $i;

Answer #3 (40 Votes)

11/18/2009 18:41:54

++$i is pre-incrementation

  1. $i is incremented
  2. the new value is returned

$i++ is post-incrementation

  1. the value of $i copied to an internal temporary variable
  2. $i is incremented
  3. the internal copy of the old value of $i is returned
Hack Hex uses Stack Exchance API by the Stack Exchange Inc. to scrape questions/answers under Creative Commons license.