Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php代码中嵌入html代码的推荐方法是什么?_Php - Fatal编程技术网

在php代码中嵌入html代码的推荐方法是什么?

在php代码中嵌入html代码的推荐方法是什么?,php,Php,假设我有两个案例: <?php print("html code goes here"); ?> v、 html代码在这里 第一种情况下PHP解释器的性能会比第二种情况下的性能差吗?(由于打印功能内部处理的额外开销) 那么,有没有人推荐在php代码中插入html代码的方法呢?哦,为了以后编辑代码的所有人,请不要在字符串中插入大量html代码并将其回显。用任何语言 HTML属于HTML文件,由IDE或编辑器格式化和设置样式,因此可以读取。巨大的字符串块是我见过的HTM

假设我有两个案例:

<?php
   print("html code goes here");
?>

v、


html代码在这里
第一种情况下PHP解释器的性能会比第二种情况下的性能差吗?(由于打印功能内部处理的额外开销)


那么,有没有人推荐在php代码中插入html代码的方法呢?

哦,为了以后编辑代码的所有人,请不要在字符串中插入大量html代码并将其回显。用任何语言

HTML属于HTML文件,由IDE或编辑器格式化和设置样式,因此可以读取。巨大的字符串块是我见过的HTML错误的最大原因

在这种情况下,性能应该不会太重要,但我认为第二个会更快,因为它直接流到输出或缓冲区

如果您希望它更易于阅读,请启用短标记,并按如下方式编写:

?><b>blah blah blah</b><?

?>废话废话废话废话除非您特别打算这样做,否则不要将HTML放入PHP代码中。但我还是建议100%分离如果你把代码弄混了,人们将不得不非常努力地工作才能理解你的代码。尤其是对php不太熟悉的设计师。

黄金法则是将前端和后端流程分离,以在各个方面提供最大帮助。把东西放在该放的地方。CSS中的样式,JS中的Java脚本,库文件夹/文件中的Php,只需使用所需的类/函数


使用短标记
您应该将HTML放在PHP代码之外,以便更好地维护和可伸缩性。在显示任何数据之前进行所有必要的数据处理,以分离逻辑和表示,这也是非常有益的

与其尝试不断地分离php和HTML,不如将后端逻辑和显示逻辑分离


MVC模式是思考代码的好方法——为了正确使用PHP,必须使用MVC,千万不要这样做使用类似的模板系统,以便将逻辑与显示代码分开。它还允许您引入一个可以处理html的设计器,而可能根本不懂php。Smarty模板读起来更像HTML而不是PHP,这在与设计师打交道时会产生很大的不同

此外,在执行查找/替换时,您不必担心设计器会弄乱代码


更好的方法是使用像或这样的设置,它清楚地描述了代码/模板设置,但是如果您不能这样做(廉价的托管解决方案),那么至少使用模板。我不知道smarty是否是PHP的最佳选择,但它比您提出的两种解决方案都要好得多。

[head over the parapet]我们中的许多人都从WordPress学习过模板制作,在WordPress中,如果不嵌入PHP,几乎不可能做任何事情。我完全理解为什么人们提倡严格的MVC或Smarty之类的引擎,但事实是在WordPress开发中,您需要使用php动态地处理输出。事实上,在这种背景下,我总是假设php中的“hp”正是出于这个原因。因此,我可以编写看起来“正常”的HTML,进行一些服务器端处理,然后返回HTML

因此,从我的观点来看,你的问题的答案是,你的第二个例子更容易阅读——优雅编码的基础之一。但这要视情况而定。如果生成一个简单的html需要大量的处理,那么构建一个大变量并在最后回显它可能会更容易。我有多行回音陈述。在这种情况下,我可能会使用一个函数来保持HMTL的干净。WordPress也经常这样做;例如
title()
返回一个简单字符串,但在返回该字符串之前进行了大量处理,因此
可读性很好


这是WordPress开发人员的观点,他从未正式学习过复杂编码。我预计会因为这个答案而损失相当多的声誉分数。[/head over the parapet]

如果是非常少量的html,比如说在foreach循环中生成列表的标签,那么通过打开和关闭php标签来启用和禁用解释器的成本将影响性能(无论多么轻微)。因此,我不同意建议100%分离。是的,我同意。但这额外的1毫秒处理时间(至少在测试过程中)比得到一个疯狂的bug(小袋短标签)更值得一试+1因为这通常是一个好答案,但应避免使用短标签。阅读这里的答案,我和那些不懂反短标签的人在一起。我看到的唯一两个反对的选项是:缺乏可移植性(您正在编写库吗?)和无法编写xml open标记。这些都是用全尺寸标签把html弄得乱七八糟的借口。但这是一个古老的论点,不必在这里辩论。我知道这个问题已经有四年了,但这是我发现的这个问题最清晰的重复。
?><b>blah blah blah</b><?
Hello, <?= $username ?>