PHP - 回声还是不回声?

2022-08-31 00:37:24

什么更有效和/或什么是更好的做法,以回显HTML或有许多打开和关闭标签?php

显然,对于HTML的大区域,打开和关闭标签是明智的。在处理诸如生成 XML 之类的事情时,该怎么办?您是应该为每条数据使用单个回显打开和关闭标记,还是使用引号中包含的 XML 标记的单个回显?phpphp


答案 1

从维护的角度来看,应该将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

逻辑和内容分离的另一大优点是,如果有一天需要过渡到模板引擎或引入缓存,那么实现起来几乎毫不费力,因为逻辑和代码已经分离了。


答案 2

PHP 通过所谓的 .请检查一下。heredocs

例:

  echo <<<EOD
  <td class="itemname">{$k}s</td>
  <td class="price">{$v}/kg</td>
EOD;

注意:遗传标识符(本例中为 EOD)不得有任何空格或缩进。


推荐