6

我继承了一个网站,我需要对其进行一些更改。与往常一样,在网站开发中有很多方法可以做事。然而,这个特定的网站让我感到困惑。所有的 html 都是通过 heredoc php 脚本提供的。但是,没有人做任何 php 处理。

例如(仅结构)index.php:

<?php
$html = <<<html

<html>
    <head></head>
    <body>
        {more simple HTML here.  No php processing to be done}
    </body>
</html>
html;
echo $html;
?>

我了解 php,但我无法弄清楚为什么他们以这种方式生成页面,而不是在没有 php 变量处理的情况下简单地交付它。在我假设这个人不知道他们在做什么之前,我想我会问。有任何想法吗?

这是我在 StackOverflow 上的第一篇文章,因此也欢迎对论坛礼仪进行反馈。

4

4 回答 4

1

这可能是因为他们打算在 HEREDOC 中使用 PHP 变量。您的示例没有这些,但我会冒险猜测它们在某些地方使用。从那里开始,我会想象 HEREDOC 在任何地方都使用以保持一致性。

于 2013-01-08T14:31:43.943 回答
1

heredocs 的原因可能是因为您不必在 heredoc 中转义引号或担心引号,而字符串文字您必须相应地管理引号。

尽管将 HTML 保存在单独的文件中或使用模板系统更为常见 - 通常这将是比 heredocs 或字符串文字更好的选择。

于 2013-01-08T14:33:56.143 回答
1

PHP 文件已经是 HTML 中的模板文件。

将您的代码替换为:

<html>
    <head></head>
    <body>
        {more simple HTML here.  No php processing to be done}
    </body>
</html>

只需在 PHP 文件的正文中包含<?phpand之外?>的 HTML 即可返回 HTML。

于 2013-01-08T16:52:02.960 回答
1

您可能会花费数周的时间来尝试了解遗留开发人员的想法,而这只是在浪费时间。

我建议将代码重构为在这些情况下不需要 PHP 中的任何东西,做他们所做的事情没有任何好处,而且每次编辑它时都会给你带来不和谐的体验。

于 2013-01-08T16:58:02.420 回答