在您的PHP中回显HTML

4

这更像是一个想法而不是技术问题,如果这个问题看起来愚蠢或答案对某些人来说很明显,我很抱歉,但我在思考...

在编写需要写入HTML的内容时,总是使用echo输出好还是在需要编写HTML时关闭PHP标记,然后重新打开?本质上将PHP嵌入HTML中?

下面是每种方法的示例:

                for($x=0;$x<count($customers);$x++)
            {

                echo '<tr>';
                echo '<td><a class=summary href=mailto:'.$customers[$x]["Email"].'>'.$customers[$x]["Email"].'</td>';
                echo '<td>'.$customers[$x]["Title"].'</td>';
                echo '<td>'.$customers[$x]["FirstName"].'</td>';
                echo '<td>'.$customers[$x]["Surname"].'</td>';
                echo '<td>'.$customers[$x]["DeliveryCountryID"].'</td>';
                echo '<td>'.$customers[$x]["LanguageID"].'</td>';
                echo '</tr>';
            }

显示所有被回显的HTML。

                <?php
                for($x=0;$x<count($customers);$x++)
                {
            ?>
                    <tr>
                    <td><?=$customers[$x]["Email"]?></td>
                    <td><?=$customers[$x]["Title"]?></td>
                    <td><?=$customers[$x]["FirstName"]?></td>
                    <td><?=$customers[$x]["Surname"]?></td>
                    <td><?=$customers[$x]["DeliveryCountryID"]?></td>
                    <td><?=$customers[$x]["LanguageID"]?></td>
                    </tr>
            <?php
                }
?>

以下是在HTML中嵌入PHP的示例。

我之所以这样问,是因为我刚开始编程生涯,经验不足,加入了一家公司,他们的老开发人员显然比我经验丰富,而他却把所有内容都使用echo语句输出。

我从未这样做过,因为我喜欢在HTML中嵌入PHP,并且有时我发现他的代码很难阅读。

他这样做有原因吗?还是这是最好的方法,或者逐渐改变代码更像我想要的方式是否值得呢?


4
有许多方法可以达到相同的结果,但个人而言,我会选择使编码更容易的方式。 - karmafunk
1
坦白地说,我会使用单独的模板语言。(而且我不会选择编码最简单的方式,我会选择维护最简单的方式)。 - Quentin
2
我倾向于使用嵌入式设备,因为在我看来,这样可以更轻松地处理代码。这只是一个观点,仅此而已。 - Buggabill
2
我想这取决于开发者的偏好和编码习惯,我个人更喜欢先结束php代码块,然后编写html并包含php标签。如果必须要输出任何变量,除非有一个函数,否则我会将html字符串连接在一起并将其返回到一个变量中,然后打印到屏幕上。此外,如果你使用像Dreamweaver这样的工具,你可以分割屏幕以显示代码和设计视图,如果你结束了php并且有html,Dreamweaver设计视图将显示它,并使得在大页面中移动变得更容易。 - Marty
2
性能差异非常微小。对我来说,可读性(可维护性)最重要。 - jnthnjns
显示剩余3条评论
4个回答

0

有许多方法可以输出您的代码。您不能认为这是最好的方式。

一切都取决于您。您喜欢什么?依我之见,我喜欢在 HTML 中嵌入 PHP(第二种方法)。但是其他人可能喜欢在 PHP 中输出所有 HTML 代码。

整个事情取决于您,您选择什么。它们都是相同的。


0
最好的方法是使用模板引擎,如 Smarty,并将业务逻辑和表现分离。这样可以使您的代码更加灵活。
在您的情况下,我更喜欢第二种方法 ("<td><?=$customers[$x]["Email"]?></td>"),因为它易于阅读和理解。这也有两个优点,
  1. 如果您有其他人在应用程序上工作,例如设计师,对他来说更容易进行更改。
  2. 将来如果您决定使用模板引擎,您可以轻松转换您的代码。

0

这是个人偏好,但我见过最常见的做法是将HTML作为基础,在必要时插入PHP。正如其他人所说,将业务逻辑与演示分开。使用一个单独的目录用于函数或代码后台,然后在文档开头进行include_once。这样你的演示代码就是相当简单的HTML(通常更容易让设计师处理),而PHP用于插入所需内容。

当PHP被用作CMS或使用数据库驱动的Web内容时,这尤其有帮助。尽可能地将逻辑与演示分开。


0

首先,问问自己“更好”是什么意思。

如果“更好”意味着更易读,你可能会面临以下问题:

  1. 在HTML代码中,如果有一些<?php echo $var[attr]; ?>,你很容易错过它们。
  2. 在PHP代码中,如果有大量的echo '<tr><td ............................ ';,你可能会难以理解其中的内容,特别是如果有很多转义字符。你需要添加一个换行符。

我的答案是:这取决于什么对你更重要:HTML?使用1。PHP?使用2。

如果“更好”意味着更快,那么使用1。解析较少需要的时间较短。但这段时间真的很重要吗?

如果“更好”意味着更短和更节省内存,那么HTML文件的文本较少。但这些字节真的很重要吗?

无论如何,我总是避免合并这两种方法,例如:

<div>
  <p>Some text....</p>
<!-- some other stuff like lots of form fields -->
<?php
// some php code
echo '</div>';

这是因为在IDE中,如果不查看PHP,您可以更容易地找到未关闭标记等错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接