比多条echo语句打印表更好的方法


Better way than multiple echo statements for printing a table?

有没有更好的方法来处理这段代码,不要问为什么它在echo中我的兄弟就是这样做的,不知道为什么,但它很慢,我确实想要echo

echo "<table id='"vote'">";
echo "<th colspan='"11'">Vote now!</th>";
echo "<tr>";
echo "<td><form action='"vote.php?id=$id&value='"0'"'" method='"post'"><input name='"value'" value='"0%'" type='"submit'"/></form></td>";
echo "<td><form action='"vote.php?id=$id&value='"10'"'" method='"post'"><input name='"value'" value='"10%'" type='"submit'"/></form></td>";
echo "<td><form action='"vote.php?id=$id&value='"20'"'" method='"post'"><input name='"value'" value='"20%'" type='"submit'"/></form></td>";
echo "<td><form action='"vote.php?id=$id&value='"30'"'" method='"post'"><input name='"value'" value='"30%'" type='"submit'"/></form></td>";
echo "<td><form action='"vote.php?id=$id&value='"40'"'" method='"post'"><input name='"value'" value='"40%'" type='"submit'"/></form></td>";
echo "<td><form action='"vote.php?id=$id&value='"50'"'" method='"post'"><input name='"value'" value='"50%'" type='"submit'"/></form></td>";
echo "<td><form action='"vote.php?id=$id&value='"60'"'" method='"post'"><input name='"value'" value='"60%'" type='"submit'"/></form></td>";
echo "<td><form action='"vote.php?id=$id&value='"70'"'" method='"post'"><input name='"value'" value='"70%'" type='"submit'"/></form></td>";
echo "<td><form action='"vote.php?id=$id&value='"80'"'" method='"post'"><input name='"value'" value='"80%'" type='"submit'"/></form></td>";
echo "<td><form action='"vote.php?id=$id&value='"90'"'" method='"post'"><input name='"value'" value='"90%'" type='"submit'"/></form></td>";
echo "<td><form action='"vote.php?id=$id&value='"100'"'" method='"post'"><input name='"value'" value='"100%'" type='"submit'"/></form></td>";
echo "</tr>";
echo "</table>";

尝试循环(我自由地改变了其中一个echo使用单引号(')而不是双引号(")来摆脱所有的转义(')。我还用一个变量替换了所有的echo(听起来稍微快一点)。

$myForms = "";
$myForms .= "<table id='"vote'">";
$myForms .= "<th colspan='"11'">Vote now!</th>";
$myForms .= "<tr>";
for ($i = 0; $i < 110; $i += 10) {
    $myForms .= '<td><form action="vote.php?id=' . $id . '&value=' . $i . '" method="post">
                         <input name="value" value="' . $i . '%" type="submit"/>
                     </form>
                 </td>';
}
$myForms .= "</tr>";
$myForms .= "</table>";
echo $myForms;

我建议你分开HTML和PHP代码,使其更容易管理和使用for循环DRY你的代码:

<table id="vote">
<th colspan="11">Vote now!</th>";
<tr>
<?php
    for($i=0; $i <= 100; $i+=10) {
        <td><form action="vote.php?id=' . $id . '&value=' . $i . '" method="post"> <input name="value" value="' . $i . '%" type="submit"/> </form> </td>;
    }
?>
<tr>
</table>