抱歉,我知道这是一个基本问题,但我已经尝试了几个小时,我似乎认为这有什么问题!
echo '<tr><td><img src="images/$row['picture']" alt="' . $row['username'] . '" /></td>';
是一种更清洁的方式,并且没有错误。
感谢
答案 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元素中的双引号更改为单引号,或者转义它们。