结合 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
扩展
运行时性能
在工作站上运行超过 0.5m 次迭代(平均超过 10 次运行):
结论
串联速度更快,尽管它不太可能影响任何特定应用程序的性能。