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]