PHP和HTML代码的结构化

PHP和HTML代码的结构化,php,html,Php,Html,我对PHP相当陌生,有几个问题。 我不确定的是我应该如何在HTML中构造或实现PHP代码 到目前为止,我已经用两种不同的方式构建了代码,要么呼应HTML,要么尽可能减少PHP 您喜欢以下两个示例中的哪一个?我想大多数人都会回答第一个问题,但为什么呢?是因为能够阅读HTML语法亮点吗? 正如您在代码1中所看到的,我必须键入PHP开始和结束标记来结束foreach函数,当代码开始变大时,这有点烦人。看起来代码中充满了最小操作的开始和结束PHP标记 如何构造代码 代码示例1: <table bo

我对PHP相当陌生,有几个问题。 我不确定的是我应该如何在HTML中构造或实现PHP代码

到目前为止,我已经用两种不同的方式构建了代码,要么呼应HTML,要么尽可能减少PHP

您喜欢以下两个示例中的哪一个?我想大多数人都会回答第一个问题,但为什么呢?是因为能够阅读HTML语法亮点吗? 正如您在代码1中所看到的,我必须键入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>


这取决于页面上有多少HTML内容PHP变量

考虑到您的示例,它是一个简单的表,只显示值。vs echo“$some_value”没有太大区别


但是对于复杂的HTML页面,其中包含大量内容,我相信示例1会派上用场。在这里或那里嵌入PHP而不是重复内容,更方便、可读且将来可编辑。这两个示例都可以,这取决于开发人员认为哪一个具有更好的可读性。但无论你选择什么,总会有一些取舍,例如:
例如,1,您仍然需要键入大量的php开始和结束标记。虽然例如2,您仍然需要编写一次php标记,但每个html标记必须位于
echo
中。但对我来说,选项1比第二个选项更具可读性,因此我选择选项1。

两个示例都很好。但我通常更喜欢例子2

但在这样的最小编码中(无需重复):


这个问题和答案会非常固执己见,因为你问的是人们喜欢什么

然而,我想指出的是,php确实比您正在使用的支持更强大,即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>

通常,当遵循这种模式时,开发人员会尽量在HTML生成之外保留尽可能多的逻辑,这种模式现在经常在web应用程序中执行

这就是为什么大多数web开发框架都使用模板引擎,从而使代码更接近您的第一个示例。除了您和其他人提到的优点(例如更清晰的语法)之外,这些引擎还有一个很大的优点,那就是确保输出被干净地转义。在纯PHP中,您必须记住使用
htmlspecialchars
使代码更长,如果您忘记了它,可能会导致危险的安全漏洞


所以我的建议是:不要使用任何一种语法。相反,请寻找要使用的模板引擎。

选择选项1。这样,代码编辑器仍然会对HTML代码进行着色。选项2是正确的,但如果您在中小型项目中工作,您必须将php代码与html分开,以使您的项目更具可读性和可升级性。对于其他用例,请参考此选项。您可以使用。节省时间和精力。太好了,我不知道我能做到!非常感谢。
<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>
<table border="5">
    <?php foreach ($a3 as $nokkel => $verdi): ?>
        <tr>
            <td><?= $nokkel; ?></td>
            <td><?= $verdi['selskap']; ?></td>
            <td><?= $verdi['siste']; ?></td>
        </tr>
    <?php endforeach; ?>
</table>