在PHP中使用常规HTML和在echo语句或变量中使用HTML的区别

在PHP中使用常规HTML和在echo语句或变量中使用HTML的区别,php,html,model-view-controller,Php,Html,Model View Controller,您好,我一直在想,在MVC体系结构中,哪一种是编写html的最佳方式。它是常规html,如还是echo'。这是一个非常小的示例,但有时我们可以使用一个变量或一个echo语句,其中包含多行代码 我们是否会有任何性能问题,因为php必须由Web服务器(apache、iis等)解析,而HTML则直接由浏览器呈现。那么,我们是否可以通过使用常规HTML获得任何解析时间呢?常规的纯HTML更可取,因为它可以静态地提供,而无需PHP处理。尽管如此,如果你有一个MVC架构,那么你首先就不应该回显HTML——输

您好,我一直在想,在MVC体系结构中,哪一种是编写html的最佳方式。它是常规html,如
还是
echo'。这是一个非常小的示例,但有时我们可以使用一个变量或一个echo语句,其中包含多行代码


我们是否会有任何性能问题,因为php必须由Web服务器(apache、iis等)解析,而HTML则直接由浏览器呈现。那么,我们是否可以通过使用常规HTML获得任何解析时间呢?

常规的纯HTML更可取,因为它可以静态地提供,而无需PHP处理。尽管如此,如果你有一个MVC架构,那么你首先就不应该回显HTML——输出应该由你的视图层处理。

常规的纯HTML更好,因为它可以静态地提供,而不需要PHP处理。不过,也就是说,如果你有一个MVC架构,那么你首先就不应该回显HTML——输出应该由你的视图层处理。

当文件是php文件(并且在某处包含php代码)时,这一点都不重要。服务器会执行它,而不管里面是什么,纯纯文本会按原样返回,而被回显的文本会添加到中间(回显位置)。最后,生成一个连贯的纯文本并发送给客户端(使用正确的mime类型),然后客户端让浏览器对其进行解释

我通常在
标记之外放入更长的静态html块,以使其更清晰,但只要涉及到一些逻辑,我就会将所有内容都呼应出来,以免一路中断php流


但最终,这完全取决于您。

当文件是php文件(并且在某个地方包含php代码)时,这一点都不重要。服务器会执行它,而不管里面是什么,纯纯文本会按原样返回,而被回显的文本会添加到中间(回显位置)。最后,生成一个连贯的纯文本并发送给客户端(使用正确的mime类型),然后客户端让浏览器对其进行解释

我通常在
标记之外放入更长的静态html块,以使其更清晰,但只要涉及到一些逻辑,我就会将所有内容都呼应出来,以免一路中断php流


但最终,这完全取决于你。

我同意亚历克斯的看法。您应该将数据层和显示层分开。一个流行的解决方案是使用像Smarty这样的模板系统(http://www.smarty.net). 我们在工作中使用它。有些人喜欢,有些人不喜欢;你可以自己决定。

我同意亚历克斯的看法。您应该将数据层和显示层分开。一个流行的解决方案是使用像Smarty这样的模板系统(http://www.smarty.net). 我们在工作中使用它。有些人喜欢,有些人不喜欢;您可以自己决定。

静态html比echo或变量上的嵌入式html具有更高的性能,因为服务器端不处理html。因此,一个有用的实现是只从服务器端检索必要的数据变量、数据库行、迭代等,因为其中的所有内容都将由php服务处理。

静态html比echo或变量上的嵌入式html具有更高的性能,因为服务器端不会处理html。因此,一个有用的实现是只从服务器端检索必要的数据变量、数据库行、迭代等,因为其中的所有内容都将由php服务处理。

不,我们不会有任何性能问题。因为性能问题来自数据操作,而不是这些琐碎的事情。不,我们不会有任何性能问题。因为性能问题来自数据操作,而不是这些琐碎的事情。在视图层中,我们仍然可以让占位符变量打印来自数据存储(例如:数据库)的文本。虽然在我的控制器文件中看不到echo语句,但在我的视图层中仍然会有echo语句,因为这些是PHP变量,所以我必须在视图中回显它们。回显变量的内容和回显静态HTML是两件完全不同的事情。显然,您需要回显变量。(或者做一些字符串操作来嵌入它们。)但是使用视图层/模板系统的全部目的是避免完全按照您所描述的做。在视图层中,我们仍然可以让占位符变量打印来自数据存储(例如:数据库)的文本。虽然在我的控制器文件中看不到echo语句,但在我的视图层中仍然会有echo语句,因为这些是PHP变量,所以我必须在视图中回显它们。回显变量的内容和回显静态HTML是两件完全不同的事情。显然,您需要回显变量。(或者做一些字符串操作来嵌入它们。)但是使用视图层/模板系统的要点是避免完全按照您所描述的那样进行操作。为什么不将PHP流分为两部分?没有输出的数据准备部分,以及只涉及输出逻辑的输出部分?@Schrapanel上校:哦,我不是想把数据准备或类似的东西放在那里。我所指的更像是从for循环输出重复的块,其中每行中有多个值直接来自php数据(例如,考虑一些包含大量数据的表——如果将php作为主代码,而不是将多个控制php代码作为html之间的内联php代码,则更容易查看代码)。为什么不将PHP流分为两部分?没有输出的数据准备部分和只涉及输出逻辑的输出部分?@Col.Shrapnel:哦,我不是想把数据准备或类似的东西放在那里。我指的更像是从e中的for循环中输出重复的块