我继承了一个网站,我需要做一些改变。像往常一样,在网站开发中有很多方法。然而,这个特殊的网站让我感到困惑。所有的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上的第一个帖子,所以也欢迎对论坛礼仪的反馈。
这可能是因为他们打算在HEREDOC中使用PHP变量。您的示例没有这些,但我冒昧地猜测它们在某些地方使用。从这里开始,我就会想象herdoc可以在任何地方使用,以保持一致性。
使用heredoc的原因可能是因为在heredoc中根本不需要转义引号或担心引号,而字符串字量则需要相应地管理引号。
将HTML保存在单独的文件中或使用模板系统更为常见——通常这比heredocs或字符串文字要好。
PHP文件已经是HTML中的模板文件了。
将代码替换为:
<html>
<head></head>
<body>
{more simple HTML here. No php processing to be done}
</body>
</html>
只要在PHP文件的主体中有HTML, <?php
和?>
之外,返回HTML。
您可能要花费数周的时间去了解遗留开发人员的想法,这只是浪费时间。
我建议重构代码,在这些情况下不需要PHP中的任何东西,做他们所做的事情没有任何好处,而且每次你进入编辑它时都会有一种不和谐的体验。