Jeff 'Japhy' Pinyan wrote:
>
> Strictly speaking, there is another major difference no one has mentioned
> yet (and that many people might have trouble understanding). Using
> $count++ returns a NUMBER OR STRING, and then increments $count's value.
> ++$count increments $count's value, and returns THE SCALAR ITSELF.
>
> How does this matter? Well, watch:
>
> $i = 2;
> $j = ++$i / ++$i;
>
> What do you think $j will be? 3/4? Nope. 4/4, or 1. The reason is
> because the ++$i form is a "footnote" type of thing. Basically it means
> "increment $i, but leave $i here" whereas $i++ means "return $i's value,
> and then increment it".
>
I don't know what you mean by "returns THE SCALAR ITSELF"? You mean the
actual scalar, it's lvalue? Not the case.
$i = 1;
++$i = 2;
$i++ = 2;
are both invalid for the same reason as they only return the value of $i,
not the scalar itself. The same reason why the following statment can
almost never be valid in most programming languages:
++$i++;
why? because both the pre and the post increment only returns the value
(which is a constant) of $i and thus can never be assigned to anything. No
matter which one executes first, the next increment will always fail.
david
btw, the ++$i / ++$i gives you a 1 thing behaves differently in other
programming languages. For example, try the following in C++:
#include<iostream.h>
void main{
int i=2;
int j=++i/++i;
cout<<j<<endl;
}
won't give you a 1.
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]