> -----Original Message-----
> From: yohg...@gmail.com [mailto:yohg...@gmail.com] On Behalf Of
> Yasuo Ohgaki
> 
> Hi all,
> 
> 2013/7/21 Sherif Ramadan <theanomaly...@gmail.com>
> 
> > The problem is I'm not sure where this type of information should
> be
> > documented. It makes sense to put this on the increment/decrement
> operators
> > page, but doesn't seem appropriate the operator precedence page.
> So to make
> > sure we're all in agreement I'm suggesting the following language
> to be
> > added as a note on the increment/decrement operators page at
> > www.php.net/language.operators.increment with supplement examples
> > provided above to help users get a better understanding of what we
> mean
> > when we say undefined behavior and add an additional warning box
> not to
> > rely on this type of behavior.
> >
> 
> Since the issue int "++$a + $a++" is not a precedence issue, but a
> evaluation orders and side effects. Describing it without complete
> explanation in precedence section makes users confuse. (I'm the one
> also)
> 
> I partially agree that documenting the issue in
> www.php.net/language.operators.increment . It would better to be
> described
> fully in a section since it is not a increment/decrement only issue.

I agree with this, mostly. It might well be appropriate to document that,
as a general rule, there is no guarantee in which order the operands of
an arithmetic (at least) operator are evaluated. And you are quite right
that it's not only increment/decrement operators, although those are the
most obvious culprits. Take the following (very contrived!) example:

  function f($n) { echo $n; return $n; }

  $x = f(1) + f(2);

For the same reason that the ++$a + $a++ example is undefined, it's
undefined whether that will echo 12 or 21 -- even though it's perfectly
well defined that $x will be 3 in either case! For this reason, I'd
probably go with the major warning being on the precedence/associativity
table, with a prominent reference to it on the ++/-- page.

Just my £0.02!

Cheers!

Mike

-- 
Mike Ford,
Electronic Information Developer, Libraries and Learning Innovation,  
403a Leslie Silver Building, City Campus, Leeds Metropolitan University,
Woodhouse Lane, LEEDS,  LS1 3ES,  United Kingdom
E: m.f...@leedsmet.ac.uk     T: +44 113 812 4730


To view the terms under which this email is distributed, please go to 
http://disclaimer.leedsmet.ac.uk/email.htm

Reply via email to