构建PHP和HTML代码

时间:2016-02-22 08:06:11

标签: php html

我对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>

5 个答案:

答案 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>

这有几个额外的好处:

  • 它更紧凑(浪费更少的线条)
  • 更容易遵循几个块级别(想想如果在内部,如果在foreach的内部)
  • 更容易阅读
  • 您在代码中保留缩进。这很重要,因为根据您的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使代码更长 - 如果您忘记它可能会导致危险的安全漏洞。

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