<分区>
组合 2 个字符串时,下面哪个方法更快?为什么它可以运行得更快?
PHP代码:
$str1 = 'Hello';
$str2 = 'World';
方法一:
$txt = $str1.$str2;
方法二:
$txt = "$str1$str2";
<分区>
组合 2 个字符串时,下面哪个方法更快?为什么它可以运行得更快?
PHP代码:
$str1 = 'Hello';
$str2 = 'World';
方法一:
$txt = $str1.$str2;
方法二:
$txt = "$str1$str2";
最佳答案
操作码对比
代码:
$a=1;
$b=2;
echo "$a$b";
操作码:
1 0 > ASSIGN !0, 1
1 ASSIGN !1, 2
2 ADD_VAR ~2 !0
3 ADD_VAR ~2 ~2, !1
4 ECHO ~2
5 > RETURN null
代码:
$a=1;
$b=2;
echo $a.$b;
操作码:
1 0 > ASSIGN !0, 1
1 ASSIGN !1, 2
2 CONCAT ~2 !0, !1
3 ECHO ~2
4 > RETURN null
中间结论
连接少了一个操作码,庆幸!不一定,实际的运行时性能还是要测试的。
要查看任何一段代码生成的操作码,请查看很棒的 vld
extension
运行时性能
在工作站上运行超过 0.5m 次迭代(平均超过 10 次运行):
结论
串联速度更快,但不太可能影响任何特定应用程序的性能。
关于php - 性能方面的插值(直接插入字符串)VS拼接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13553402/