PHP - 回显还是不回应?

Mar*_*ark 16 php performance

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

显然,对于大范围的HTML,打开和关闭php标签是明智的.在处理生成XML这样的事情时呢?您是应该php为每个数据单个回显打开和关闭标记,还是使用带引号中包含的XML标记的单个回显?

Pek*_*ica 21

从维护的角度来看,应该将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;
Run Code Online (Sandbox Code Playgroud)

当然,您将需要使用更明智的变量名称.

编辑: @stesch在注释中指出的链接提供了一些关于在生成XML时使用序列化程序的一些好的论据,并且通过扩展,甚至HTML,而不是如上所示打印出来.我不认为一个串行必要在每一个情况,特别是从维护的角度来看,其中模板是这样更容易编辑,但该链接是非常值得一读.HOWTO避免在生成XML时被称为Bozo

逻辑和内容分离的另一个重要优点是,如果转换到模板引擎,或者有一天需要引入缓存,那么实现它几乎是无痛的,因为逻辑和代码已经分离.

  • 我甚至不知道heredoc的存在 - 这就是为什么我喜欢stackoverflow ...分享这么多的知识.谢谢 (4认同)