为什么我们要把PHP和HTML分开
我对编程相当陌生,我知道如何将PHP与HTML分开,但我想知道这样做是否有任何区别 这:为什么我们要把PHP和HTML分开,php,html,Php,Html,我对编程相当陌生,我知道如何将PHP与HTML分开,但我想知道这样做是否有任何区别 这: 这是一个标题 这是一段 ?> 与此相比: <?php echo "<h1>This is a title</h1>"; echo "<div>"; echo "<p>This is a paragraph</p>"; echo "The variable contains the string $rand"
这是一个标题
这是一段
?>
与此相比:
<?php
echo "<h1>This is a title</h1>";
echo "<div>";
echo "<p>This is a paragraph</p>";
echo "The variable contains the string $rand";
echo "</div>";
?>
在性能等方面,将PHP代码从HTML代码中分离出来与仅用PHP重复整个页面之间有什么区别吗?问题不在于性能,而在于可读性,更重要的是,可维护性 在一个地方进行所有处理,在另一个地方进行所有输出(即逻辑和表示),这意味着您可以更轻松地更改其中一个,而不会对另一个产生太大的影响
对于您的具体问题,由于上面列出的原因,到目前为止最好采用顶部方法。从表面上看问题,有两个原因会立即浮现在脑海中:
然而,当大多数人说“将PHP与HTML分离”时,他们指的是将逻辑与视图分离的概念。这意味着不要将复杂的业务逻辑、计算和数据库调用放在html页面中。将所有内容保存在纯PHP文件中,并让html文件包含仅用于输出数据的最小PHP。最佳做法不是将PHP与html分离,最佳做法是将逻辑与标记分离 同样重要的是编码风格正确的行缩进。使用
echo'代码>而不是echo”“代码>,未将变量放入引号中:
echo "The variable contains the string $rand";
更好(为什么?见我下面的评论):
通过改进代码、编写干净、可读、可维护的代码,您的整个项目获得了很多质量和价值。假设您要更改文本,则必须添加或更改大量的echo
es
代码样式指南>,
,我认为你的例子不是一个很好的例子,它清楚地说明了为什么你应该把它分开
您不仅应该分离HTML,还应该分离应用程序的表示、呈现或UI部分的原因是干净的编码和。这将确保您获得干净、易于阅读的代码,并使您的应用程序成为maintable
以Wordpress为例,它是php和HTML的完美结合。它们甚至在应用程序的表示层中执行SQL查询,如果您甚至可以在表示和其他逻辑之间画一条边界的话
您总是需要在HTML中输出一些动态内容,但真正尝试将其简化为回显变量,并在其中包含一些输出格式帮助对象。所有业务逻辑都应该在其他地方,只是不在“模板”或任何您将调用包含输出的文件的地方
看一看,例如,它让您很好地了解了如何以及为什么要将事情分开。在我看来,这取决于正在进行的HTML格式设置与PHP逻辑的级别。不多不少。将纯HTML理解为纯HTML或将PHP理解为纯PHP更简单。当它以一些模板系统处理的方式被拼凑在一起时,读取和调试就成了一个逻辑难题。因此,为了我自己的理智,我错误地将HTML放在PHP中
不清楚性能的优缺点(如果有)。但我可以向您保证,在20多年的时间里,我从未因为PHP中嵌入了太多HTML而导致服务器速度减慢
就我个人而言,我会将您的代码示例格式化如下:
<?php
echo "<h1>This is a title</h1>"
. "<div>"
. "<p>This is a paragraph</p>"
. "The variable contains the string $rand"
. "</div>"
;
?>
我喜欢这种方法,因为有一个echo
——它清楚地表明了发生了什么,HTML的其余部分只是通过
字符连接起来
此外,请记住,编程中的所有格式对人类的好处比任何东西都多。计算机只需要看到命令,所以如果你想成为一台完美的机器,只需要不带空格或格式的代码。见鬼,停止使用完整单词&只需使用1个字母的变量!哦,等等,这就是你们过去的做法
如今,编译器和缓存系统的设计目的是获取人类可读的代码,并使其实现机器优化
这就是我要说的:你应该为可读性和逻辑性编写代码。不多不少。
<?php $rand="I love apples" ?>
<h1>This is a title</h1>
<div>
<p>This is a paragraph</p>
<?php echo"The variable contains the string $rand"; ?>
</div>
?>
这是一个标题
这是一段
?>
上面这些看起来很难分开。这就是php/html分离的样子:
<?php
$rand="I love apples";
?>
<h1>This is a title</h1>
<div>
<p>This is a paragraph</p>
<p>The variable contains the string <?=$rand ?></p>
</div>
这是一个标题
这是一段
变量包含字符串
就性能而言,这不是一个问题,但对于程序员来说,能够轻松地阅读代码会大有裨益,因此需要进行HTML/PHP分离实践。理想情况下,如果您只想编写一个脚本,请将所有PHP代码放在最上面。另外,分离的另一个原因是IDE编辑器可以轻松地很好地格式化HTML。如果PHP标记内有一个HTML标记,而该标记以PHP外的HTML标记结尾,则无法正确格式化HTML。例如:
<div><p>And it offers so much <?php echo "$features</p>
<h2>Proven Ideas";?></h2>
<p>More details ahead</p>
</div>
而且它提供了很多
更多详情请参见下文
上面的代码运行得很好,但是IDEHTML格式化程序可能会与缺少的结束标记混淆,并且不会格式化,这会使程序员更难读取它们 一个主要区别的可能重复是任何人都必须看代码。维护通过php编写的html是一件可怕的事情
<?php
$rand="I love apples";
?>
<h1>This is a title</h1>
<div>
<p>This is a paragraph</p>
<p>The variable contains the string <?=$rand ?></p>
</div>
<div><p>And it offers so much <?php echo "$features</p>
<h2>Proven Ideas";?></h2>
<p>More details ahead</p>
</div>