我在PHP中看到了类似的代码
public function fetch()
{
$xml = '';
$xml .= '<' . '?xml version="1.0" encoding="utf-8"?' . '>' . "\n";
$xml .= '<rss version="2.0">';
$xml .= '<channel>';
$xml .= '<title>TEST</title>';
$xml .= '<description>TEST</description>';
foreach ($this->items as $item)
{
$xml .= '<item>';
$xml .= '<title>' . $item['title'] . '</title>';
$xml .= '<description>' . $item['body'] . '</description>';
$xml .= '</item>';
}
$xml .= '</channel>';
$xml .= '</rss>';
return $xml;
}
代码使用了很多stings concat(。=),你认为这不是一个好方法吗? 它看起来像是不必要的内存使用情况。
这些代码是MCV“VIEW”的一部分,该函数已经将处理过的数据放入“items”数组中。该函数将进行渲染。
您是否同意而不是
echo $this->fetch();
使用模板文件更好?像这样:
include('template.php');
然后在template.php中:
<?xml version="1.0" encoding="utf-8">
<rss version="2.0">
<channel>
<title>TEST</title>
<description>TEST</description>
<?
foreach ($this->items as $item){
echo '<item>';
echo '<title>' . $item['title'] . '</title>';
echo '<description>' . $item['body'] . '</description>';
echo '</item>';
}
?>
</channel>
</rss>
我认为第二种方法会更好。你同意吗?或任何其他评论?
编辑:
用户指出使用模板也没有。那么,你什么时候使用模板?什么时候不使用? (那些教程总是告诉我,无论如何我都可以使用模板,我有点迷惑。)
答案 0 :(得分:0)
使用模板不一定更好,因为它是I / O操作(并且I / O操作通常很昂贵)。 相比之下,串联的性能要高出几倍。您可以删除不必要的连接(例如'&lt;'。'?xml'部分)或使用HEREDOC / NOWDOC(http://php.net/manual/fr/language.types.string.php)。
在一天结束时,只要应用程序不是纯粹的性能驱动,它主要取决于开发人员的选择。
编辑:正如评论中所述,使用XML读取器/编写器类将证明更强大并提高可维护性。