我正在努力优化我的PHP代码,并发现您可以通过以下方式加快回应 - 确切地说,您可以将echo "The name of the user is $name" . ".";
替换为:
echo 'The name of the user is '.$name.'.';
echo "The name of the user is", $name, ".";
echo sprintf("The name of the user is %s", $name);
哪一个最快?我不仅要看基准,还要看一些技术性解释,如果可能的话。
答案 0 :(得分:11)
首先,这是微优化,你可能更好地支付更快的服务器和开发更多的产品,然后花费数小时和微小优化。但是根据http://micro-optimization.com/,结果如下:
sprintf()比双引号慢138.68%(慢1.4倍)
和
sprintf()比单引号慢163.72%(慢1.6倍)
答案 1 :(得分:3)
以上评论是相关的。有更好的方法来优化您的代码。
也就是说,优化字符串的最佳方法是将它们弹出到列表中,然后将列表连接起来。看看this post是一个很好的起点。
答案 2 :(得分:3)
使用sprintf()
的变体是非常确定的,因为PHP中的函数调用非常昂贵且sprintf()
必须解析格式字符串。使用类似echo "abc ", $n, " xyz";
的东西实际上编译为三个单ZEND_ECHO
个操作码,这意味着输出层被多次调用,这可能非常慢,具体取决于所使用的SAPI。无论您使用echo "abc $n xyz";
还是echo "abc " . $n . " xyz";
都没有太大区别,因为它们都编译为cocatenation操作。