PHP中最快的字符串连接方式是什么?

3

我希望将两个变量组合在一起:

$var1 = '欢迎 ';

$var2 = $_SESSION['UserName'];

哪个代码样例的速度更快?代码示例 1:

$var3 = $var1.$var2;

或者代码示例2:

$var3 = "$var1$var2";

4
为什么不自己做一个基准测试呢? - Gumbo
1
如果你认为它会对我想象中的$_SESSION['UserName']有任何影响,那么你是错误的。 - Dominic Rodger
2
可能是PHP字符串连接 - "$a $b" vs $a . " " . $b - 性能的重复问题。 - karim79
2
这个是否有“真实”的(即:大循环)背景,还是只是理论上的或过早优化? - Bobby
2个回答

7

代码示例1根本无法工作。

语法考虑放在一边,示例1应该是微不足道地更快,因为它不涉及解析字符串(查找变量)。

但这非常非常微小。


4
+1。样例1将生成更少的OPCode指令,因此它会更快。字符串解析不应该有太大关系(因为它是由预处理器完成的),但它会生成更多的OPCode。问题在于,在任何情况下,我们可能在亚微秒范围内讨论差异。因此,除非你在紧密循环内处理数百万个样例,否则应优先考虑可读性。在这种情况下,更易读的解决方案恰好也是更快的解决方案。双赢! - ircmaxell

2

这两个例子都会得到相同的结果 - $var3 等于"Welcome Wazzy"。然而,代码示例1将工作速度显着更快。当你使用大量数据(或者通过将小数据集合并约一百万次)时,请尝试一下,你会看到连接比变量替换要快得多。


这不应该让人感到惊讶,对吧? - Andreas Rejbrand

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接