Connecting Tech Pros Worldwide Help | Site Map

I have seen much, but this...

jodleren
Guest
 
Posts: n/a
#1: Oct 18 '06
I have 2 pieces of code, where one works, another does not, even they
should be the same

echo " <td$s $s2</td><td>$s-";
echo $s+$s2." </td></tr>\r\n";

which can be truncated to

echo " <td$s $s2</td><td>$s-".$s+$s2." </td></tr>\r\n";

All in one line, but then the first part in the "" will not be printed,
result: 45</td></tr- a funny table.
There should be no difference, but there is.

$s and $s2 are integer, the entire table is for debugging. The error is
known and I can work around this.

But i cannot explain it.

BR
Sonnich

Moot
Guest
 
Posts: n/a
#2: Oct 18 '06

re: I have seen much, but this...


jodleren wrote:
Quote:
I have 2 pieces of code, where one works, another does not, even they
should be the same
>
echo " <td$s $s2</td><td>$s-";
echo $s+$s2." </td></tr>\r\n";
>
which can be truncated to
>
echo " <td$s $s2</td><td>$s-".$s+$s2." </td></tr>\r\n";
>
All in one line, but then the first part in the "" will not be printed,
result: 45</td></tr- a funny table.
There should be no difference, but there is.
>
$s and $s2 are integer, the entire table is for debugging. The error is
known and I can work around this.
>
But i cannot explain it.
>
BR
Sonnich

When doing math within a string concatenation, you need to use
parethesis.
So your second example becomes:
echo " <td$s $s2</td><td>$s-". ($s+$s2) ." </td></tr>\r\n";

p.lepin@ctncorp.com
Guest
 
Posts: n/a
#3: Oct 18 '06

re: I have seen much, but this...



jodleren wrote:
Quote:
echo " <td$s $s2</td><td>$s-";
echo $s+$s2." </td></tr>\r\n";
>
which can be truncated to
>
echo " <td$s $s2</td><td>$s-".$s+$s2." </td></tr>\r\n";
Precedence. Try:

echo " <td$s $s2</td><td>$s-".($s+$s2)." </td></tr>\r\n";
Quote:
There should be no difference, but there is.
Of course there *is* quite a difference. You just failed to
notice it.

--
Pavel Lepin

Closed Thread