php: output[] w/join vs $output .=

标签 php string-concatenation

我正在修改原作者使用数组构建网页的一些代码:

 $output[]=$stuff_from_database;
 $output[]='more stuff';
 // etc
 echo join('',$output);

谁能想出为什么这比(或反之亦然)更可取:

 $output =$stuff_from_database;
 $output .='more stuff';
 // etc
 echo $output;

最佳答案

它可能是由来自字符串不可变且因此连接成本高昂的语言的人编写的。正如以下测试所示,PHP 不是其中之一。所以第二种方法是性能明智的,更好。我能想到的使用第一种方法的唯一其他原因是能够用另一个替换数组的某些部分,但这意味着要跟踪未指定的索引。

~$ cat join.php
<?php

for ($i=0;$i<50000;$i++) {
$output[] = "HI $i\n";
}

echo join('',$output);
?>


~$ time for i in `seq 100`; do php join.php >> outjoin ; done

real    0m19.145s
user    0m12.045s
sys     0m3.216s

~$ cat dot.php
<?php

for ($i=0;$i<50000;$i++) {
$output.= "HI $i\n";
}

echo $output;
?>


~$ time for i in `seq 100`; do php dot.php >> outdot ; done

real    0m15.530s
user    0m8.985s
sys     0m2.260s

关于php: output[] w/join vs $output .=,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/111282/

相关文章:

php - MySql 选择JOIN 问题。只是不知道该怎么做

c# - 我应该如何连接字符串?

pyspark生成特定列的行哈希并将其添加为新列

c - 如何在 C 中使用 ## 实现循环

java - 在 StringBuffer append 中对单字符值使用字符而不是 String

php - 我尝试更多上传图片,但即使我尝试更多,它也会出错

php - 使用 zend gdata 插件上传文档

javascript - 如何使用 JavaScript 将数据插入 Yii 框架 2.0 CKEditor 扩展?

javascript - 文档就绪功能 - 添加提交按钮

string - 在 MATLAB 中,如何在元胞数组中的每个字符串的开头插入一个字符串?