php - 哪个性能更好 : double quoted strings with variables or single quoted strings with concatenations?

标签 php performance string

我知道在 PHP 中对字符串使用单引号比使用双引号更快,因为 PHP 不需要检查单引号字符串中是否存在变量。我的问题是哪个会表现更好:

A) 带有变量的双引号字符串:

echo "foo bar $baz";

B) 带连接变量的单引号:

echo 'foo bar ' . $baz;

最佳答案

我做了一个benchmark这是我前一段时间在写的博客上的。然而,正如我所意识到的那样,有很多变数。其中最主要的是:

  1. 您要进行多少次串联?每次执行连接时,PHP 都会重新解析整个字符串(或者有人告诉我)。因此 1 个串联可能更快,但 6 个可能相当慢。
  2. 数据类型。虽然我自己没有亲自测试过这个,但有人告诉我,连接的数据类型也很重要,但我不确定有多大。

总而言之,我要说的是,您真正担心它真的没什么大不了的。一般来说,如果你正在编写一个巨大的网站(想想 MySpace、Facebook、Flickr 等),它只会产生明显的不同,而且通常到那时你已经拥有如此多的硬件,以至于单引号和双引号的事情再次变得无关紧要.

就我个人而言,我会说有一些更重要的事情会以更实质性的方式影响性能(缓存、sql 优化、自动加载以防止不必要的包含等)。

我个人几乎每次都选择单引号,但不是为了速度。我这样做是因为我认为它更具可读性。这对我来说很重要。

关于php - 哪个性能更好 : double quoted strings with variables or single quoted strings with concatenations?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1311368/

相关文章:

php - 获取复选框的多个值

c# - 如何将字符串放在字符的右侧?

string - Unicode 字符串到 Unicode 字符,Python 3

python - 在 Python 中将字符串转换为日期时间

php - 将整数转换为时间格式,以便您可以用它计算时间差

javascript - 未捕获的安全错误 : Failed to read the 'contentDocument' property from 'HTMLIFrameElement' : Blocked a frame

php - PHP 中的插件架构

java - 在大文件Java中查找重复的行

java - 实现 HashMap 插入的高吞吐量

android - 如何检查设备是否*快*足够