2011-02-02 182 views
2

可能重复:
Is there a performance benefit single quote vs double quote in php?PHP,单引号或双引号更快?

这是更快,单或双引号,为什么?

另外,使用这两种方法的优点是什么?

+4

这没关系,这是更快 – zerkms 2011-02-02 05:58:39

+1

[“要快,少做。”](http://asserttrue.blogspot.com/2009/03/how-to-write-fast-code.html ) – Gumbo 2011-02-02 07:07:40

+0

这个问题在没有适当研究的情况下被急速询问,并且没有解释我的问题背后的原因。这是相当古老的,似乎正在吸引负面的观点。请求删除这个问题是否正确?或者我是否放弃了这个问题并且接受了我提出的问题不好的事实? – cornernote 2015-04-16 01:53:23

回答

7

取决于你想要做什么。我只做了一些基准测试,并测试了5个测试用例的字符串赋值:双引号+变量,双引号,双引号和字符串追加,单引号以及带字符串追加的单引号。

我的测试代码。一百万个循环。字符串分配。

<?php 

$start = microtime(true); 

$str = ""; 

for($i = 0; $i<1000000; $i++) 
{ 
     $str = "hello $i"; 
} 

$end = microtime(true); 

echo $end - $start; 

结果:

单引号和双引号字符串变量没有同样快。 (每个都在.08附近回应)。 具有变量级联的单引号和双引号字符串大致相同,但比没有变量慢。 (每个回显在.17-.20附近) 带有字符串变量的双引号最慢(大约.20-.25)

所以Single/Double并不重要,但似乎字符串连接更快比变量更换。

1

如果不需要处理其中的文本,那么单个处理速度会更快。

+0

我不知道为什么这得到了downvoted。这是所提问题的唯一实际正确答案。其他答案都是“没关系”,虽然这是真的,但并不回答这个问题。 – 2013-07-11 21:46:06

+0

另外请记住这个答案可能引用PHP 5.2,其中性能差异更明显。在> 5.3中,在大多数时间差的情况下,我们的谈话不到百分之一。 – 2013-07-11 21:49:26

18

我要说的是单引号更快,因为它们不需要;)

不同的行情有变输出的影响和转义字符。单引号内的内容按原样存在,不会解释转义字符和变量。双引号解释变量值并转义特殊字符,如换行符(\n)。

3

看一看的双引号(“)性能比较和单引号(')的字符串@phpbench

结论:” 在PHP今天的版本中,它看起来是这样的说法得到了满足两个线的两侧。让这一切中的所有人和睦相处!

2

单引号通常更快,一切援引内部视为纯字符串,

echo 'anyting else ? $something'; 
>> anything else? $something 

PHP不会使用额外的处理来解释什么是单引号内

但是,相比于双引号,PHP将取代$ something将其分配的值

$something = 'yup'; 
echo "anyting else ? $something"; 
>> anything else ? yup 
13

你每秒处理1000个字符串吗?否则,你不应该太担心。

使用双引号,如果你想使用字符串插值(使用变量,数学等)

你也应该尝试是一致的。

我们应该忘记小效率,比如97%的时间:过早优化是万恶之源。

Donald Knuth

2

至于速度,只有正确的答案是它应该不是你关心的所有。期。 不同之处在于,如果你找到一个,根本就不重要。为了关注速度,人们应该了解整个图像,而不是一个像素。让您的应用程序更快更高效是一项艰巨而复杂的任务。但是通过询问“哪个更快”的问题是不能做到的。 如果您真的有关于此,从学习开始剖析是。

至于优点,手册页说明是最好的地方去学习它:http://php.net/types.string
虽然这不是真正的优点,而是用例。