Re: Whacky increment/assignment logic with $foo++ vs ++$foo

From: Date: Tue, 06 Oct 2009 23:20:02 +0000
Subject: Re: Whacky increment/assignment logic with $foo++ vs ++$foo
References: 1 2 3 4 5 6 7 8 9  Groups: php.general 
Request: Send a blank email to php-general+get-298700@lists.php.net to get a copy of this message
On Tue, 6 Oct 2009 14:08:14 -0400, tedd.sperling@gmail.com (tedd) wrote: >At 10:48 AM -0300 10/6/09, Martin Scotta wrote: >>No matter how silly it can looks like (a = a++) it is still completely valid >>code and it SHOULD run without problems. > >Yeah, it's a valid as: > > $a = $a; > >and does the same thing, which is nothing. No; it's worse, because it can be interpreted in two different ways, which is demonstrated by the fact that it gives different results in different languages. >If you want a statement that does something, then use: > > $a = ++$a; > >or simply: > > $a++; > >or > > ++$a; > >Any of those will increment $a, whereas ($a = $a++;) does nothing. According to Schlossnagel "Advanced PHP programming" it is better to use ++$a, because this simply increments the variable, whereas $a++ makes a copy, and then increments the variable, so it involves additional time and memory usage. I cannot see that it would ever make a difference in the real world, but this is one of the tricks Schlossnagel advises you should use when you want the fastest possible code.

« previous php.general (#298700) next »