这个php echo语句有什么问题?

时间:2010-09-08 19:33:21

标签: php html echo

抱歉,我知道这是一个基本问题,但我已经尝试了几个小时,我似乎认为这有什么问题!

 echo '<tr><td><img src="images/$row['picture']" alt="' . $row['username'] . '" /></td>';

是一种更清洁的方式,并且没有错误。

感谢

5 个答案:

答案 0 :(得分:4)

你遗漏了一些'

我会这样做:

 echo '<tr><td><img src="images/' . $row['picture'] . '" alt="' . $row['username'] . '" /></td>';

还有其他一些方法可以做到这一点,但我不建议使用短标签或将变量插入字符串永远。如果双引号无关紧要,则终止字符串并连接。它的眼睛更简单,代码更清晰。

您甚至可以通过使用,分隔回显参数来完全避免字符串连接。

 echo '<tr><td><img src="images/', $row['picture'], 
      '" alt="', $row['username'], '" /></td>';

答案 1 :(得分:3)

 echo "<tr><td><img src='images/{$row['picture']}' alt='{$row['username']}' /></td>";

只有double quoted strings才能解析PHP变量。

答案 2 :(得分:3)

?>
<tr><td><img src="images/<?=$row['picture']?>" alt="<?=$row['username']?>" /></td>
<?

答案 3 :(得分:2)

第一个'打开一个字符串。您在$row['意外关闭了该字符串,导致错误。您需要先关闭字符串并单独回显$row['picture'](请参阅下文),或使用允许variable interpolation的双引号(")。

另外,建议:在PHP中回显时不要使用连接(.运算符)。 Echo接受多个以逗号分隔的参数,这些参数不会产生字符串连接的开销:

echo '<tr><td><img src="images/', $row['picture'], '" alt="',
     $row['username'], '" /></td>';

作为旁注,同样适用于<?=,与<?php echo相同:

<?= $value, ' + 1 = ', $value + 1 ?>

答案 4 :(得分:1)

您还需要转义$ row ['picture']

echo '<tr><td><img src="images/' . $row['picture'] . '" alt="' . $row['username'] . '" /></td>';

如果您想要更清洁的方式,请考虑以下事项:

echo "<tr><td><img src='images/{$row['picture']}' alt='{$row['username']}'/></td>";

如果你有双引号字符串,只要它们包含在{}中就可以包含内联数组值。当然,你必须将html元素中的双引号更改为单引号,或者转义它们。