这篇文章不是一个真正的问题,但它可能是有用的共享一些编码技巧。优化PHP字符串连接
这是我想与你分享的一个。我将展示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
可以利用这一点,来...回音吧:)
而在第四之一,echo
做的唯一的事情是发送“你好”,然后$ foo的内容,那么“欢迎我的网站。”到输出,就这些! 因为回声只是发送文本,而不创建一个字符串,必须放大以包含整个文本(这将是凹的,必须增长(因为连接),然后显示。)
我会尽力找回一些基准,并把它们放在这里。
费尔自由评论或反应,原谅我的英语,这不是我的母语。
你有这方面的表现数据? – brian 2009-01-06 15:23:25
这是有用的信息,但您应该以Stack Overflow的问题/答案格式显示它。 – rjzii 2009-01-06 15:31:18
@Rob,完全相反,这些信息完全没用。在现实生活中,你会从这样的“优化”中获得**没有任何**。 – 2011-02-24 07:14:52