可能重复:
Is there a performance benefit single quote vs double quote in php?
我想知道在定义不包含变量的字符串时使用"
时PHP代码是否会受到性能影响,与未执行额外解析的'
相比。
例如,PHP将尝试解析"
但不是'
定义的字符串中的变量。
$myString = "Greetings earthlings!";
echo '$myString'; //literally outputs the string '$myString'
echo "$myString"; //literally outputs the string "Greetings earthlings"
所以我的问题是,我一直在编写这样的代码:
echo "Greetings earthlings";
我一直在浪费周期吗?或者PHP智能/优化足以知道我真的意味着:
echo 'Greetings earthlings';
答案 0 :(得分:5)
VLD的一些工作告诉我两个程序都编译成相同的字节码(使用PHP 5.3):
line # * op fetch ext return operands
---------------------------------------------------------------------------------
2 0 > ECHO 'Hello+world'
3 1 > RETURN 1
结论:现代版本的PHP完全没有区别。没有任何。使用对你最好的方式。
但echo "Hello $world"
:
compiled vars: !0 = $world
line # * op fetch ext return operands
---------------------------------------------------------------------------------
1 0 > ADD_STRING ~0 'Hello+'
1 ADD_VAR ~0 ~0, !0
2 ECHO ~0
3 > RETURN null
echo "Hello " . $world
:
compiled vars: !0 = $world
line # * op fetch ext return operands
---------------------------------------------------------------------------------
1 0 > CONCAT ~0 'Hello+', !0
1 ECHO ~0
2 > RETURN null
但是,我会毫不犹豫地称之为重要。实际上,现实世界的性能差异很可能是微不足道的。
答案 1 :(得分:1)
可以运行基准来查看。我为PHP 4做过,发现字符串连接比嵌入变量更快(一个数量级?我记不清楚)。相比之下,双引号中的普通字符串只比单引号快一点。
但那是PHP 4 。我稍后为PHP 5 运行了相同的测试,性能差异几乎可以忽略不计。