我对PHP很新,并且有一些问题。 我不确定的是我应该如何在HTML中构建或实现PHP代码。
到目前为止,我已经用两种不同的方式构建了编码,要么回显HTML,要么尽量保持PHP的最小化。
您更喜欢以下两个示例中的哪一个?我想大多数人会回答第一个问题,但为什么呢?是不是因为阅读HTML语法亮点的能力? 正如您在第一个代码中看到的那样,我必须键入PHP开始和结束标记才能结束foreach函数,当代码开始变得非常大时,这有点烦人。看起来代码中包含最小操作的开始和结束PHP标记。
如何构建代码?
代码示例1:
<table border="5">
<?php
foreach ($a3 as $nokkel => $verdi){
?>
<tr>
<td><?php echo $nokkel; ?></td>
<td><?php echo $verdi['selskap']; ?></td>
<td><?php echo $verdi['siste']; ?></td>
</tr>
<?php } ?>
</table>
代码示例2:
<table border="5">
<?php
foreach ($a3 as $nokkel => $verdi){
echo "<tr>";
echo "<td>$nokkel</td>";
echo "<td>$verdi['selskap']</td>";
echo "<td>$verdi['siste']</td>";
echo "</tr>";
}
?>
</table>
答案 0 :(得分:3)
两个例子都很好。但我通常更喜欢例子2。
但是在这样的最小编码中(不需要一次又一次地回声):
<table border="5">
<?php
foreach ($a3 as $nokkel => $verdi){
echo '<tr>
<td>'.$nokkel.'</td>
<td>'.$verdi['selskap'].'</td>
<td>'.$verdi['siste'].'</td>
</tr>';
}
?>
</table>
答案 1 :(得分:2)
这取决于您在页面上有多少 HTML内容和 PHP变量。
考虑到您的示例,它是一个简单的表,只显示值。 &lt;%= $ some_value%&gt; vs echo&#34; $ some_value&#34;并非如此。
但是由于复杂的HTML页面存在大量内容,我相信示例1将会派上用场。在这里和那里嵌入PHP而不是回显内容,更加方便,可读且将来可编辑。
答案 2 :(得分:1)
这两个例子没问题,这实际上取决于开发人员他/她认为哪一个具有更好的可读性。但无论你选择什么,总会有例如:
例如1,你仍然需要输入大量的php开始和结束标签。虽然例如2,你仍然必须编写一次php标签,但每个html标签必须在echo
内。但对我来说,选项1对我来说比第二个更容易阅读,所以我选择了选项1.
答案 3 :(得分:1)
这个问题和答案将高度自以为是,因为你问的是人们更喜欢什么。
但是,我想指出php支持a different syntax而不是你正在使用的那个,即foreach:/ endforeach if / endif等。这样,你的例子
<table border="5">
<?php
foreach ($a3 as $nokkel => $verdi){
?>
<tr>
<td><?php echo $nokkel; ?></td>
<td><?php echo $verdi['selskap']; ?></td>
<td><?php echo $verdi['siste']; ?></td>
</tr>
<?php } ?>
</table>
可以这样写得更好:
<table border="5">
<?php foreach ($a3 as $nokkel => $verdi): ?>
<tr>
<td><?php echo $nokkel; ?></td>
<td><?php echo $verdi['selskap']; ?></td>
<td><?php echo $verdi['siste']; ?></td>
</tr>
<?php endforeach; ?>
</table>
这有几个额外的好处:
echo
建议,您很快就会错误地了解您所使用的html缩进级别。如果你有一个像样的IDE,语法高亮仍然会应用在你的所有例子中,所以这不应该是一个主要问题。
编辑:添加了指向备用控件语法的php手册的链接。
编辑2 由于我们已经讨论了备用语法的主题,您还可以通过更改{{1}来利用"short echo" syntax进一步降低代码的详细程度到<?php echo
。如果您使用的是 php版本5.4 或更高版本 (如果您现在开始学习或使用php,那么您最应该这样做)。 / p>
使用此代码,您的代码可以进一步重构为:
<?=
答案 4 :(得分:1)
通常,当遵循Model-View-Controller模式(通常在Web应用程序中进行)时,开发人员会尝试在HTML生成之外保留尽可能多的逻辑。
这就是为什么大多数Web开发框架都使用模板引擎,这导致代码更接近您的第一个示例。除了你和其他人提到的优点,例如更清晰的语法,一个很大的优点是这些引擎确保输出干净地转义。在纯PHP中,您必须记住使用htmlspecialchars
使代码更长 - 如果您忘记它可能会导致危险的安全漏洞。
所以我的建议是:不要使用任何一种语法。而是寻找要使用的模板引擎。