字符串concat大小写在PHP中是否会出现性能问题?

字符串concat大小写在PHP中是否会出现性能问题?,php,templates,Php,Templates,我在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>

我在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;
}
使用模板文件更好吗?像这样:

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>

试验
试验
我认为第二种方法会更好。你同意吗?或者其他评论

编辑:


一位用户指出,使用模板也有不足之处。那么,什么时候使用模板,什么时候不使用?(那些教程总是告诉我无论如何都可以使用模板,我有点困惑。)

使用模板并不一定更好,因为它是一种i/O操作(而且i/O操作通常成本很高)。
相比之下,串联的性能要高出数倍。您可以删除不必要的连接(就像“当你连接时,你在PHP内存中将其构建为一个大字符串,这可能是一个严重的内存问题……我建议你改用@MarkBaker,我也更喜欢XMLWriter,因为它可以处理编码,并使生成正确的xml文档变得更简单……但我怀疑内存使用会更少,因为它仍然需要ore字符串用于所有键值对。我认为op关注的是错误的事情。性能不是concat的问题,构建正确的xml文档是。xml只是我在一些教程中发现的一个随机示例。我喜欢讨论字符串构建和回显函数之间的关系。甚至可能不仅仅是xml。你能告诉我什么是I/O opera吗操作?是关于include()函数的吗?如果是,那么把这些代码放在同一个php文件中怎么样?I/O意味着输入/输出。它基本上是在磁盘、网卡等介质上执行的操作。这些操作通常使用“慢”字因此,在可能的情况下,应避免使用硬件设备。例如,当所需数据存储在内存中时,不应读取磁盘上的文件。在您的情况下,调用“include”将迫使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>