RE: [PHP] bug in echo function?
| From: | Darren Gamble | Date: | Fri, 18 Jan 2002 19:14:06 +0000 |
| Subject: | RE: [PHP] bug in echo function? | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-81137@lists.php.net to get a copy of this message | ||
Good day,
No, that's not it.
It's just a simple matter of order of operations. You have an expression-
that expression needs to be evaluated into one thing, and that one thing is
then passed to echo() as the single argument.
I'm not a php expert, but evidently the "." operator is evaluated before the
"*" operator, which in turn is evaluated before the "+" operator.
Perhaps it would be easier to understand if you thought of the "." operator
like the exponent operator in math- it is evaluated before "*" or "+" is.
============================
Darren Gamble
Planner, Regional Services
Shaw Cablesystems GP
630 - 3rd Avenue SW
Calgary, Alberta, Canada
T2P 4L4
(403) 781-4948
-----Original Message-----
From: Billy Harvey [mailto:Billy.Harvey@thrillseeker.net]
Sent: Friday, January 18, 2002 12:07 PM
To: Darren Gamble
Cc: php
Subject: RE: [PHP] bug in echo function?
On Fri, 2002-01-18 at 13:54, Darren Gamble wrote:
> Good day,
>
> The reason that the first statement doesn't work as intended is due to the
> order that the operands are processed.
>
> The operands in the line:
>
> "<td>" . ($i*8)+$j . "</td>"
>
> are being processed like this:
>
> ("<td>" . ($i*8))+($j . "</td>")
>
> If you change the line to:
>
> "<td>" . (($i*8)+$j) . "</td>"
>
> then you'll get the desired result.
>
> Rule of thumb: Use parenthesis whenever you have a complex operation to
> ensure the result is what you want.
Hmmm - so my assumption that the concatenation operator between the
strings gives them a delination equivalent to listing this as three
separate echo statements is incorrect, I take it.
Shouldn't the echo function process it in this manner from a standpoint
of consistency?
Thanks for the clarification.
Billy