ID: 10770
Updated by: sniper
Reported By: [EMAIL PROTECTED]
Old-Status: Open
Status: Closed
Bug Type: Feature/Change Request
Operating system: 
PHP Version: 4.0.5
Assigned To: 
Comments:

http://www.php.net/manual/en/language.operators.precedence.php

. and - are equal. Use ()'s to override it.

--Jani


Previous Comments:
---------------------------------------------------------------------------

[2001-05-09 19:21:33] [EMAIL PROTECTED]
<?
  $i=10;
  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.

PS:
Thanks PartyZan for finding this.

---------------------------------------------------------------------------



ATTENTION! Do NOT reply to this email!
To reply, use the web interface found at http://bugs.php.net/?id=10770&edit=2


-- 
PHP Development Mailing List <http://www.php.net/>
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