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.

============================
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:[EMAIL PROTECTED]]
Sent: Friday, January 18, 2002 11:44 AM
To: php
Subject: [PHP] bug in echo function?


I ran across a curious bug in the echo function this morning.  My PHP is
Debian binary 4.1.1-1.

The first example below does not work (it should draw a
checkerboard-like table):

-----

<html>
<head>
<title>Chess</title>
<body>
<table border=1>
<?

for ($i=0 ; $i<8 ; $i++) {
  echo "<tr align=center valign=center>";
  for ($j=0 ; $j<8 ; $j++) {
    echo "<td>" . ($i*8)+$j . "</td>";
  }
  echo "</tr>\n";
}

?>
</table>
</body>
</html>

-----

However, by changing the echo line to two echo lines, it works as
desired:

-----

<html>
<head>
<title>Chess</title>
<body>
<table border=1>
<?

for ($i=0 ; $i<8 ; $i++) {
  echo "<tr align=center valign=center>";
  for ($j=0 ; $j<8 ; $j++) {
    echo "<td>";
    echo ($i*8)+$j . "</td>";
  }
  echo "</tr>\n";
}

?>
</table>
</body>
</html>

-----

I don't see any limitations about concatenating strings in the man page
of the echo statement.  Perhaps this is a bug?

Billy



-- 
PHP General 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]

-- 
PHP General 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