PHP - 回声还是不回声?
2022-08-31 00:37:24
什么更有效和/或什么是更好的做法,以回显HTML或有许多打开和关闭标签?php
显然,对于HTML的大区域,打开和关闭标签是明智的。在处理诸如生成 XML 之类的事情时,该怎么办?您是应该为每条数据使用单个回显打开和关闭标记,还是使用引号中包含的 XML 标记的单个回显?php
php
什么更有效和/或什么是更好的做法,以回显HTML或有许多打开和关闭标签?php
显然,对于HTML的大区域,打开和关闭标签是明智的。在处理诸如生成 XML 之类的事情时,该怎么办?您是应该为每条数据使用单个回显打开和关闭标记,还是使用引号中包含的 XML 标记的单个回显?php
php
从维护的角度来看,应该将HTML / XML与IMO的代码分开,以便即使非技术人员也可以轻松进行微小的更改。
标记越均匀块,工作就越干净。
实现此目的的一种方法是在变量中尽可能多地准备,并使用heredoc语法:
// Preparation
$var1 = get_value("yxyz");
$var2 = get_url ("abc");
$var3 = ($count = 0 ? "Count is zero" : "Count is not zero");
$var4 = htmlentities(get_value("def"));
// Output
echo <<<EOT
<fieldset title="$var4">
<ul class="$var1">
<li>
$var2
</li>
</ul>
</fieldset>
EOT;
当然,您将需要使用更合理的变量名称。
编辑:注释中@stesch指出的链接为在生成 XML 时使用序列化程序提供了一些很好的论据,并且通过扩展,甚至 HTML,而不是如上所示将其打印出来。我不认为在每种情况下都需要序列化程序,特别是从维护的角度来看,模板更容易编辑,但链接非常值得一读。如何避免在生成 XML 时被称为 Bozo
逻辑和内容分离的另一大优点是,如果有一天需要过渡到模板引擎或引入缓存,那么实现起来几乎毫不费力,因为逻辑和代码已经分离了。
PHP 通过所谓的 .请检查一下。heredocs
例:
echo <<<EOD
<td class="itemname">{$k}s</td>
<td class="price">{$v}/kg</td>
EOD;
注意:遗传标识符(本例中为 EOD)不得有任何空格或缩进。