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
execution
<?
$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.
--
Edit Bug report at: http://bugs.php.net/?id=10770&edit=1
--
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]