这篇文章不是一个真正的问题,但分享一些编码技巧可能会有用.
以下是我想与您分享的内容.我将展示4个做同样事情的例子.但只有最后一个才是最好的.
$foo = 'John SMITH'; echo "Hello $foo, welcome on my website."; echo "Hello " . $foo . " welcome on my website."; echo 'Hello ' . $foo . ' welcome on my website.'; echo 'Hello ', $foo , ' welcome on my website.';
我相信大家都知道这echo '$foo'
不起作用,但我仍然非常确定你使用双引号来显示一个简单的信息.
这很糟糕.
好吧,让我们开始:第一个是坏的(以及第二个)因为使用双引号强制php扫描字符串以寻找要完成的替换(我的意思是变量).
第二个是好一点,因为php无法替代.
第三个,因为简单的引用更好,所以语言知道他可以只发送文本而不处理,但"坏"的事情是使用连接(点操作符,如第二个例子).
最后一个使用简单的引用和昏迷操作符.为什么这个解决方案更好?
那么,使用第三种解决方案会发生什么?
php创建一个字符串,包含"Hello "
,然后它必须放大它,把foo变量的内容("John SMITH"),然后再放大它来放" Welcome on my website."
句子.然后,echo
可以使用这个,以...回声:)
而在第4个中,唯一要做的echo
就是发送"Hello",然后发送$ foo的内容,然后发送"Welcome on my website".到输出,这就是全部!因为echo只需发送文本,而不创建必须放大以包含整个文本的字符串(这将是凹的,必须增长(因为连接)然后显示.
我会尝试找回一些基准并将它们放在这里.
免费评论或反应,并原谅我的英语,这不是我的母语.
与哪种解决方案表现更好完全无关.计算机速度极快且CPU周期很便宜,因此毫秒优化毫无意义.唯一真正的优化是帮助您更快地阅读代码的优化,这样您就可以节省宝贵的时间并专注于实际交付工作代码.
创建一个小的(但仍然是吸吮:)基准并运行它会产生以下结果:
0.0022029876709 0.00211095809937 0.00213599205017 0.00551700592041
最后一种方法显然是最慢的.
优化的三个规则是:
不要优化.
不要优化.
不要优化.
只有在了解减速的位置后,才能将其保存为最后的事情.
否则,你会把马放在马前,可以这么说.
在实践中,这几乎总是不会成为您的主要瓶颈.
http://www.procata.com/blog/archives/2005/03/08/microbenchmarks-of-single-and-double-qouting/
这不值得.即使您设法使字符串连接速度提高30%,您的整个应用程序也可能会遇到0.1%的加速速度(不要用字面意思;可以忽略不计的加速).大部分时间都花在数据库查询或更复杂的逻辑上.