From:             [EMAIL PROTECTED]
Operating system: Linux
PHP version:      4.0.5
PHP Bug Type:     Feature/Change Request
Bug description:  . (concatenation) preceeds mathematical operations in order of 

  print "hello " . $i-2 . " world";

will output:   -2 world

("hello " . $i is evaluated into "hello 10", then 2 is subtracted (by casting "hello 
10" into a 0, then subtracting 2).  Then "world" is appened, thus giving us "-2 world")

I think this might be way counter-intuitive to what should be happening: - (or all 
other operations) should be avaluated first, and concatenation last, producing "hello 
8 world".

Or how about this example, which definately can confuse some people:

print "Hello is less than " . 1+strlen('hello') . " characters long.";

Workaround: use () to arrange things to be executed in proper order but that might not 
be obvious for someone who doesn't know about this situation.

Thanks PartyZan for finding this.

Edit Bug report at:

PHP Development Mailing List <>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to